gpt4 book ai didi

javascript - 在 JavaScript 中为每个数组分组、求和并生成一个对象

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:57:48 27 4
gpt4 key购买 nike

我需要按 id 和 sum 进行分组,但我需要为每个结果创建一个新对象:

let data = [
{"id":"2018", "name":"test", "total":1200},
{"id":"2019", "name":"wath", "total":1500},
{"id":"2019", "name":"wath", "total":1800},
{"id":"2020", "name":"zooi", "total":1000},
]

我有这段代码只返回一个包含结果的对象

let result = data.reduce(function (r, o) {
(r[o.id])?
r[o.id] += o.total:
r[o.id] = o.total;
return r;
});

但我需要这样的:

[
{"id":"2018", "name":"test", "total":1200},
{"id":"2019", "name":"wath", "total":2300},
{"id":"2020", "name":"zooi", "total":1000},
]

我该怎么做?

最佳答案

let data =[
{"id":"2018", "name":"test", "total":1200},
{"id":"2019", "name":"wath", "total":1500},
{"id":"2019", "name":"wath", "total":1800},
{"id":"2020", "name":"zooi", "total":1000},
];

let map = data.reduce((prev, next) =>{
if (next.id in prev) {
prev[next.id].total += next.total;
} else {
prev[next.id] = next;
}
return prev;
}, {});

let result = Object.keys(map).map(id => map[id]);

console.log(result);

关于javascript - 在 JavaScript 中为每个数组分组、求和并生成一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50338082/

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