var arr= [{
id: 1, value: 1
}, {id: 2, value: 2}, {
id: 3, value: 2
}, {
id: 1, value:
10
}
],
数组中有两个id为1的对象,对这个数组进行去重,并将id为1的对象的value值进行累加
let newArr = []
arr.forEach(el=>{
const result = newArr.findIndex(ol=>{return el.id === ol.id})
if(result!== -1){
newArr[result].value = newArr[result].value + el.value
}else{
newArr.push(el)
}
})
console.log(newArr)
function mergeObject( array ) {
let resultArr= [];
array.forEach(function (value,key) {
//判断过滤后的数组是否为空
if ( resultArr.length == 0 ) {
resultArr.push(value);
}else{
resultArr.forEach( function (valueIndex,keyIndex) {
if (valueIndex.id && valueIndex.id!== value.id) {
resultArr.push(value);
}else if (valueIndex.id && valueIndex.id === value.id) {
valueIndex.value= valueIndex.value + value.value;
}
});
}
});
return resultArr;
}
console.log(mergeObject(arr));