类型:js数组对象相同值相加,不同添加
将arr数组变为newArr数组
var arr = [
{id:1,name:'aaa'},
{id:1,name:'bbb'},
{id:1,name:'bbb'},
{id:2,name:"ccc"},
{id:3,name:'bbb2'},
{id:3,name:'bbb'},
{id:2,name:"c2cc"},
{id:555,name:"ccc"},
{id:555,name:"aaa"},
]
var newArr = [
{id: 1, name: 'aaabbbbbb'},
{id: 2, name: 'cccc2cc'},
{id: 3, name: 'bbb2bbb'},
{id: 555, name: 'cccaaa'}
]
实现方法:
function mergeArr(arr){
var newArr=[];
arr.forEach(item=>{
var dataItem =item
if(newArr.length>0){
var filterValue = newArr.filter(v=>{
return v.id == dataItem.id
})
if(filterValue.length>0){
newArr.forEach(n=>{
if( n.id ==filterValue[0].id){
n.name = filterValue[0].name +dataItem.name
}
})
}else{
newArr.push(dataItem)
}
}else{
newArr.push(dataItem)
}
})
return newArr
}
mergeArr(arr)
结果: