gpt4 book ai didi

javascript - 对象数组中匹配键的总和值

转载 作者:行者123 更新时间:2023-11-28 14:19:19 24 4
gpt4 key购买 nike

问题

我需要对嵌套对象数组中匹配键的值求和。每个对象内部有两个子对象。我需要对第二个嵌套对象的值求和。我们将非常感谢您的帮助!我知道还有其他类似的问题,但他们的输入格式不同,所以处理他们的示例给我带来了很多麻烦,因为我是 JS 新手

数组求和

数组中有两个以上的对象,但为了简洁起见,我只包含了两个。

stats: [
0: {
statsFields: {
duo: 2
duoM: 2
duoW: 2
kdr: 2
solo: 2
soloM: 2
soloW: 2
squad: 2
squadM: 2
squadW: 2
total: 2
totalM: 1
totalW: 2
winP: 2
},
_id: "5cc283ba7b752f322ce26168"
},
1: {
statsFields: {
duo: 2
duoM: 2
duoW: 2
kdr: 2
solo: 2
soloM: 2
soloW: 2
squad: 2
squadM: 2
squadW: 2
total: 2
totalM: 1
totalW: 2
winP: 2
},
_id: "5cc284cd7b752f322ce26169"
},
]

期望输出

statsFields: {
duo: 4
duoM: 4
duoW: 4
kdr: 4
solo: 4
soloM: 4
soloW: 4
squad: 4
squadM: 4
squadW: 4
total: 4
totalM: 2
totalW: 4
winP: 4
}

我尝试过的

我已经尝试了带有 map 的 reducer ,也尝试了 for 循环,但我遇到了麻烦,因为该对象在数组中嵌套得太深,并且数组中还有第二个对象我不知道不需要产生错误。

最佳答案

let stats = [{
statsFields: {
duo: 2,
duoM: 2,
duoW: 2,
kdr: 2,
solo: 2,
soloM: 2,
soloW: 2,
squad: 2,
squadM: 2,
squadW: 2,
total: 2,
totalM: 1,
totalW: 2,
winP: 2,
},
_id: "5cc283ba7b752f322ce26168",
}, {
statsFields: {
duo: 2,
duoM: 2,
duoW: 2,
kdr: 2,
solo: 2,
soloM: 2,
soloW: 2,
squad: 2,
squadM: 2,
squadW: 2,
total: 2,
totalM: 1,
totalW: 2,
winP: 2,
},
_id: "5cc284cd7b752f322ce26169",
}];

let sum = stats.reduce((acc, {statsFields}) => {
Object.entries(statsFields).forEach(([key, value]) => acc[key] = (acc[key] || 0) + value);
return acc;
}, {});

console.log(sum);

关于javascript - 对象数组中匹配键的总和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55874797/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com