gpt4 book ai didi

javascript - 基于数字键的对象数组的分组和总和

转载 作者:行者123 更新时间:2023-11-30 13:57:37 25 4
gpt4 key购买 nike

我正在尝试创建一个统计饼图。作为 http 响应,我从服务器获取了一个列表,我需要使用它来绘制饼图。

例如:收到的数据:

[{1: 9, 2: 7}, {3:8, 2: 1}, {1:8, 5:9}, {2:3, 3:1}]

这是期望的输出:

[{x: 1, y: 17}, {x: 2, y:10}, {x: 3, y: 9}, {x: 5, y: 9}]

请注意:x 是键,y 是相似键值的总和

我试过 data.forEach((item, index) => {})。写完这篇文章后,我实际上对如何组合 Object.keys(item)Object.values(item)Object.values( item).reduce((a,b)=> 返回 a+b;)

这个问题听起来可能很愚蠢,但我们将不胜感激。 :)

最佳答案

你可以 reduce阵列。创建一个累加器对象,每个数字作为键,并使用 xy 键作为值。遍历每个对象并根据数字更新 y 值。然后使用 Object.values()在返回的对象上获取累加器的值作为数组

const input = [{1: 9, 2: 7}, {3:8, 2: 1}, {1:8, 5:9}, {2:3, 3:1}]

const grouped = input.reduce((acc, obj) => {
for (const x in obj) {
acc[x] = acc[x] || { x , y: 0 }
acc[x].y += obj[x]
}
return acc;
}, {})

console.log(Object.values(grouped))

关于javascript - 基于数字键的对象数组的分组和总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56930544/

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