3 回答

TA貢獻1830條經(jīng)驗 獲得超3個贊
您可以遍歷對象的鍵并對它們求和。
const obj = {
type1: {
subType1: {
value: 5
},
subType2: {
value: 1
},
},
type2: {
subType1: {
value: 8
},
subType2: {
value: 2
}
}
};
const combine = (obj) => Object.keys(obj).reduce((res, cur) => {
for (let key of Object.keys(obj[cur])) {
if (res.hasOwnProperty(key)) {
res[key].value += obj[cur][key].value;
} else {
res[key] = obj[cur][key];
}
};
return res;
}, {});
console.log(combine(obj));

TA貢獻1802條經(jīng)驗 獲得超5個贊
var obj = {"2019-09-12": {
type1: {
subType1: {
value: 5
},
subType2: {value: 7}
},
type2: {
subType1: {
value: 8
},
subType2: {value: 9}
}
}}
var sumType1 = 0;
var sumType2 = 0;
function cumul(){
Object.keys(obj).forEach(function(date){
Object.keys(obj[date]).forEach(function(typeValue){
sumType1 += obj[date][typeValue].subType1.value;
sumType2 += obj[date][typeValue].subType2.value;
})
})
return {
cumulated: {
subType1: {
value: sumType1
},
subType2: {sumType2}
}
}
}
console.log(cumul())

TA貢獻1799條經(jīng)驗 獲得超8個贊
您可以使用lodash 庫。例如
var object = {
'a': [{ 'b': 2 }, { 'd': 4 }]
};
var other = {
'a': [{ 'c': 3 }, { 'e': 5 }]
};
_.merge(object, other);
// => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }
添加回答
舉報