Javascript 使用现有数据格式化新数组-问题
我正在尝试从我拥有的数据对象创建一个新数组,如下所示:Javascript 使用现有数据格式化新数组-问题,javascript,arrays,Javascript,Arrays,我正在尝试从我拥有的数据对象创建一个新数组,如下所示: const data= { periods: [{ month: 'January', types: [ { name: 'sick leave', difference: '14', revisioned: '7000', paid: '5000', }, { name: 'holiday',
const data= {
periods: [{
month: 'January',
types: [
{
name: 'sick leave',
difference: '14',
revisioned: '7000',
paid: '5000',
},
{
name: 'holiday',
difference: '12',
revisioned: '4000',
paid: '6000',
},
],
received: '3000',
taken: '2000',
result: '0',
},
{
month: 'February',
types: [
{
name: 'sick leave',
difference: '5',
revisioned: '100',
paid: '200',
},
{
name: 'holiday',
difference: '4',
revisioned: '300',
paid: '232',
},
],
received: '-2000',
taken: '2000',
result: '0',
}],
};
[
{
name: 'sick_leave_difference',
result: ['14', '5'],
},
{
name: 'sick_leave_revisioned',
result: ['7000', '100'],
},
{
name: 'sick_leave_paid',
resultat: '[5000, 200]',
},
{
name: 'holiday_difference',
resultat: ['12', '4'],
},
{
name: 'holiday_revisioned',
result: ['4000', '300'],
},
{
name: 'holiday_paid',
result: '[6000, 232]',
},
{
name: 'received',
resultat: ['3000', '-2000'],
},
{
navn: 'taken',
result: ['2000', '2000'],
},
{
name: 'result',
result: ['0', '0'],
},
];
我想做的是,获取该对象并获取属性类型
,接收
,获取
和结果
,然后从这些属性值中的每一个创建一个数组,该数组将是新数组中对象的属性。新阵列的最终结果如下所示:
const data= {
periods: [{
month: 'January',
types: [
{
name: 'sick leave',
difference: '14',
revisioned: '7000',
paid: '5000',
},
{
name: 'holiday',
difference: '12',
revisioned: '4000',
paid: '6000',
},
],
received: '3000',
taken: '2000',
result: '0',
},
{
month: 'February',
types: [
{
name: 'sick leave',
difference: '5',
revisioned: '100',
paid: '200',
},
{
name: 'holiday',
difference: '4',
revisioned: '300',
paid: '232',
},
],
received: '-2000',
taken: '2000',
result: '0',
}],
};
[
{
name: 'sick_leave_difference',
result: ['14', '5'],
},
{
name: 'sick_leave_revisioned',
result: ['7000', '100'],
},
{
name: 'sick_leave_paid',
resultat: '[5000, 200]',
},
{
name: 'holiday_difference',
resultat: ['12', '4'],
},
{
name: 'holiday_revisioned',
result: ['4000', '300'],
},
{
name: 'holiday_paid',
result: '[6000, 232]',
},
{
name: 'received',
resultat: ['3000', '-2000'],
},
{
navn: 'taken',
result: ['2000', '2000'],
},
{
name: 'result',
result: ['0', '0'],
},
];
问题在于属性类型包含一个数组,它与其他属性不同,因此我不确定如何以优雅的方式实现这一点?用于提取和展平类型
数组。减少展平数组,并使用迭代每个对象的。如果结果对象不存在,则创建它,并添加结果。使用以下命令提取回阵列:
const data={“periods”:[{“month”:“一月”,“types”:[{“name”:“病假”,“difference”:“14”,“修定”:“7000”,“paid”:“5000”},{“name”:“假日”,“difference”:“12”,“修定”:“4000”,“paid”:“6000”}”,“received”:“3000”,“take”:“2000”,“result”:“0”},{“month”:“二月”,“types”:[{“name”:“病假”,“difference”:“5”,“修定”:“100”,“paid”:“200”},{“姓名”:“假期”,“差额”:“4”,“修订”:“300”,“付款”:“232”}],“收到”:“-2000”,“采取”:“2000”,“结果”:“0”}]};
常量结果=Object.values(data.periods
.reduce((r,{types})=>[…r,…types],)
.reduce((r,{name,…props})=>{
Object.entries(props.forEach([k,v])=>{
const navn=`${name}${k}`.replace(''''-');
如果(!r[navn])r[navn]={navn,结果:[]};
r[navn].result.push(v);
});
返回r;
}, {}));
控制台日志(结果)代码>我现在唯一的问题是,我在函数参数'r'的属性的Reacterror赋值中得到一个错误,没有参数重新赋值
Dori我仍然得到相同的错误,即使是最新的更新。