let arry = [
{id: 1, list: [ {name:'张三'} ] },
{id: 1, list: [{name:'李四' }, {name:'王五'}]},
{id: 2, list: [ {name:'李白'} ]}
]
function dataFilter(data){
var obj = {}, arr = [];
for(var i = 0, len = data.length; i < len ; i++){
var currentData = data[i],
currentKey = currentData.id,
hased = currentKey in obj;
obj[currentKey] = {
id : currentData.id,
list : (hased ? obj[currentKey]['list'] : []).concat(currentData.list)
}
}
for(var key in obj){
arr.push(obj[key]);
}
return arr;
}
console.log(dataFilter(arry))
[
{id: 1, list: [ {name:'张三'}, {name:'李四' }, {name:'王五'} ] },
{id: 2, list: [ {name:'李白'} ] }
]