这是我的初始数据
var arr = [{
name: 'cny',
money: 12
},
{
name: 'cny',
money: 12
},
{
name: 'cey',
money: 12
},
{
name: 'cky',
money: 12
},
]
目标数据(其实就是希望name都为cny的合并一下总金额)
var arr1 = [{
name: 'cny',
money: 24
},
{
name: 'cey',
money: 12
},
{
name: 'cky',
money: 12
},
代码
var newData = [];
var newObj = {};
arr.forEach((element,index)=>{
if(!newObj[element.name]){
newData.push(element)
//这里需要记录一下每一个name所对应的索引,这样相同的时候就知道相同name它的索引是多少
//同时这里加1是为上面的判断if(!0) 这样就是true了 显然逻辑是不对的。
newObj[element.name] = index+1;
}else{
// 说明已经存在了
newData[newObj[element.name]-1].money += arr[index].money;
}
})
console.log(newData)
网友评论