【发布时间】:2018-10-25 05:47:50
【问题描述】:
我有一个嵌套对象:(表单示例)
const result = { '1':
{ 'a':
[ { id: '1',
sndid: 'a',
type: 'ios',
value: '55',
weight: 2
},
{ id: '1',
sndid: 'a',
sumvalue: 2 },
{ id: '1',
sndid: 'a'},
{ id: '1',
sndid: 'a',
calcsum: '3' } ],
'2':
[ { id: '1',
sndid: 'b',
type: 'ios',
value: '55',
weight: 3
},
{ id: '1',
sndid: 'b',
sumvalue: 3 },
{ id: '1',
sndid: 'b'},
{ id: '1',
sndid: 'b',
calcsum: '7' } ] },
'3':
{ 'a':
[ { id: '3',
sndid: 'a',
type: 'ios',
value: '55',
weight: 23},
{ id: '3',
sndid: 'a',
sumvalue: 4 },
{ id: '3',
sndid: 'a',
sumvalue_old: '4' },
{ id: '3',
sndid: 'a',
calcsum: '5' } ] },
}
const assignedobject = {};
_.forEach(result, (values) => {
_.forEach(values, (vals) => {
_.forEach(vals, (val) => {
_.assign(assignedobject, val);
});
});
});
console.log(assignedobject)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.min.js"></script>
使用此对象中的值,我想计算多个值。在此之前,我想将此对象转换为(更具可读性)对象。
每个 "id" 都有多个 "sndid"。所以我想按 "id" 和 "sndid" 对对象进行分组。
(例如转换后的Object应该有这个结构)
{ id: '1',
sndid: 'a',
type: 'ios',
values: '22',
sumvalue: 8,
weight: 20,
calcsum: 2
},
{ id: '1',
sndid: 'b',
type: 'ios',
values: '22',
sumvalue: 8,
weight: 20,
calcsum: 2
},
{ id: '2',
sndid: 'a',
type: 'ios',
values: '22',
sumvalue: 8,
weight: 20,
calcsum: 2}
我尝试循环到所有嵌套对象并将其分配给一个新对象。但他只是将最后一个循环推入我的对象。代码看起来也很糟糕。
结果和上面的例子一样,但他只取了最后一个对象。
【问题讨论】: