JS数组中对象ID相同对某值进行相加去重
时间: 2024-05-15 21:18:21 浏览: 100
c语言实现的_两个大小相同的数组对应值相加 结果赋给第三个数组
5星 · 资源好评率100%
您好!感谢您使用ChitGPT进行对话。关于您的问题,您可以使用Array.reduce ()方法和Object.keys()方法来实现对JS数组中相同对象ID值的属性进行相加并去重。
示例代码如下:
```javascript
const arr = [
{id: 1, value: 10},
{id: 1, value: 20},
{id: 2, value: 30},
{id: 3, value: 40},
{id: 3, value: 50}
]
const result = Object.values(arr.reduce((acc, curr) => {
if (!acc[curr.id]) { // 如果当前对象ID不在累加器中,添加进去
acc[curr.id] = {...curr}
} else { // 如果当前对象ID在累加器中,累加value值
acc[curr.id].value += curr.value
}
return acc
}, {}))
console.log(result) // [{id: 1, value: 30}, {id: 2, value: 30}, {id: 3, value: 90}]
```
在上面的示例代码中,我们先使用reduce()方法将数组中的多个对象按照ID值进行累加,并将结果放在新的累加器对象中。然后使用Object.values()方法将累加器对象中的所有属性值转为数组,这就是我们想要的结果。
希望您满意这个答案,如有其他问题欢迎向我提出。
阅读全文