js 实现对象数组分id求和
时间: 2024-01-21 21:02:11 浏览: 27
假设你有一个对象数组,每个对象都有一个 `id` 属性和一个 `value` 属性,你想要按照 `id` 属性对数组进行分组,并且对每个分组内的 `value` 属性求和。
这个问题可以通过以下的 JavaScript 代码解决:
```javascript
const arr = [
{ id: 1, value: 10 },
{ id: 2, value: 20 },
{ id: 1, value: 30 },
{ id: 3, value: 40 },
{ id: 2, value: 50 },
];
const result = arr.reduce((acc, cur) => {
const { id, value } = cur;
if (acc[id]) {
acc[id] += value;
} else {
acc[id] = value;
}
return acc;
}, {});
console.log(result); // {1: 40, 2: 70, 3: 40}
```
这段代码使用了 `reduce` 方法对数组进行迭代,同时使用了一个空对象 `acc` 来保存分组求和的结果。在每次迭代中,我们首先提取出当前对象的 `id` 和 `value` 属性,然后判断 `acc` 对象中是否已经存在这个 `id` 分组,如果存在,则将当前对象的 `value` 属性累加到对应的值上,否则新建该分组并将当前对象的 `value` 属性作为默认值。最后,我们返回更新后的 `acc` 对象,最终结果就是带有 `id` 分组求和的对象。