let arr=[{id:1,value:2},{id:2,value:6},{id:1,value:4},{id:2,value:1}] 最后转换成
[{id:1,value:6},{id:2,value:7}]
let arr=[{id:1,value:2},{id:2,value:6},{id:1,value:4},{id:2,value:1}] 最后转换成
[{id:1,value:6},{id:2,value:7}]
const newArr = [...new Set(arr.map(a => a.id))].map(id => ({
id,
value: arr.filter(a => a.id === id).reduce((a, b) => a + b.value, 0),
}))
let uniq=new Map()
// 去重合并
for(let i=0;i<arr.length;i++){
let id=arr[i].id,val=arr[i].value
if(uniq.has(id)) uniq.set(id,uniq.get(id)+val)
else uniq.set(id,val)
}
let res=[]
// 放入数组
for(let comb of uniq){
res.push({
id:comb[0],
value:comb[1]
})
}
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决