如何在typescript中对嵌套对象求和并获取新对象



我有两个对象Set_1和Set_2。在它们的内部,key_1和key_2中都有两个键。在这些Key_1和Key_2中,有我想要添加并想要创建新对象的子关键帧(两个对象的子密钥相同(。

"Set_1": {
"Key_1": {
"Sub_Key_1": 110,
"Sub_Key_2": 72,
"Sub_Key_3": 182
},
"Key_2": {
"Sub_Key_1": 110,
"Sub_Key_2": 72,
"Sub_Key_3": 182
}
}

"Set_2": {
"Key_1": {
"Sub_Key_1": 50,
"Sub_Key_2": 72,
"Sub_Key_3": 112
},
"Key_2": {
"Sub_Key_1": 30,
"Sub_Key_2": 40,
"Sub_Key_3": 70
}
}

我想要输出如下-

"Set_3": {
"Key_1": {
"Sub_Key_1": 160,
"Sub_Key_2": 144,
"Sub_Key_3": 304
},
"Key_2": {
"Sub_Key_1": 140,
"Sub_Key_2": 112,
"Sub_Key_3": 252
}
}

const Set_1 = {
"Key_1": {
"Sub_Key_1": 110,
"Sub_Key_2": 72,
"Sub_Key_3": 182
},
"Key_2": {
"Sub_Key_1": 110,
"Sub_Key_2": 72,
"Sub_Key_3": 182
}
};
const Set_2 = {
"Key_1": {
"Sub_Key_1": 50,
"Sub_Key_2": 72,
"Sub_Key_3": 112
},
"Key_2": {
"Sub_Key_1": 30,
"Sub_Key_2": 40,
"Sub_Key_3": 70
}
};
const addSetsByKeys = (set1, set2) => {
const output = {};
Object.keys(set1).forEach(set1Key => {
output[set1Key] = { ...set1[set1Key] };
});
Object.keys(set2).forEach(set2Key => {
output[set2Key] = output[set2Key] || {};
Object.keys(set2[set2Key]).forEach(set2SubKey => {
output[set2Key][set2SubKey] = set2[set2Key][set2SubKey] + (output[set2Key][set2SubKey] || 0);
});
});
return output;
}
const result = addSetsByKeys(Set_1, Set_2);
console.log(result);

最新更新