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]
})
}
13 回答12.8k 阅读
7 回答1.9k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答873 阅读✓ 已解决
6 回答1k 阅读
2 回答1.3k 阅读✓ 已解决