У меня есть вложенный объект: (Пример формы)
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" .
(Например, преобразованный Объект должен иметь эту структуру)
{ 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}
Я попытался зациклить все вложенные объекты и назначить его новому объекту.Но он просто вставил последний цикл в мой объект.Также код выглядит плохо.
Результат похож на приведенный выше пример, но он берет только последний объект.