// 处理前数据
let arr = [
{id:'1',name:'dwejdww'},
{id:'2',name:'dfrefrew'},
{id:'1',name:'bfdbfdb'},
{id:'3',name:'rfererg'},
{id:'2',name:'dwejdfww'},
]
// 处理后数据
arr=[
{id:'1',name:'dwejdww,bfdbfdb'},
{id:'2',name:'dfrefrew,dwejdfww'},
{id:'3',name:'rfererg'},
]
// 开始处理
// 1.先定义一个空对象
let map = {}
// 1.遍历数组
arr.map(data=>{
// 判断id存在map对象中不
if(!map[data.id]){ //不存在
map[data.id] = data.name //给map赋值
} else { //存在
map[data.id] = += ','+data.name
}
})
let resultArr = [];
for (let key in map) {
resultArr.push({ id: key, name: map[key] });
}
// conole.log(resultArr)
数据版本二
// 数据处理前
[
{"id":"1001","name":"值1","value":"111"},
{"id":"1001","name":"值1","value":"11111"},
{"id":"1002","name":"值2","value":"25462"},
{"id":"1002","name":"值2","value":"23131"},
{"id":"1002","name":"值2","value":"2315432"},
{"id":"1003","name":"值3","value":"333333"}
]
// 数据处理后
[
{
"id": "1001",
"name": "值1",
"data": [
{"id": "1001", "name": "值1", "value": "111"},
{ "id": "1001", "name": "值1", "value": "11111"}
]
},
{
"id": "1002",
"name": "值2",
"data": [
{ "id": "1002", "name": "值2", "value": "25462" },
{ "id": "1002", "name": "值2", "value": "23131"},
{"id": "1002", "name": "值2","value": "2315432" }
]
},
{
"id": "1003",
"name": "值3",
"data": [
{"id": "1003", "name": "值3", "value": "333333" }
]
}
]
let map = {},dest = [];
for(let i = 0; i < arr.length; i++){
let ai = arr[i];
if(!map[ai.id]){
dest.push({
id: ai.id,
name: ai.name,
data: [ai]
});
map[ai.id] = ai;
}else{
for(let j = 0; j < dest.length; j++){
let dj = dest[j];
if(dj.id == ai.id){
dj.data.push(ai);
break;
}
}
}
}