1.模拟一个假的数组
let dataArr = [
{
id:1,
name:"A",
score:10,
},
{
id:2,
name:"B",
score:10,
},
{
id:1,
name:"c",
score:10,
},
{
id:2,
name:"D",
score:10,
},
]
2.合并对象数组
var beforeData = dataArr; //将dataArr赋值给beforeData 也可直接操作dataArr
let tempArr = [];
let afterData = [];//新数组
for (let i = 0; i < beforeData.length; i++) {
if (tempArr.indexOf(beforeData[i].id) === -1) {
afterData.push({
id: beforeData[i].id,
score: beforeData[i].score,
name: [beforeData[i].name],
});
tempArr.push(beforeData[i].id);
} else {
for (let j = 0; j < afterData.length; j++) {
if (afterData[j].id == beforeData[i].id) {
afterData[j].name.push(beforeData[i].name);
break;
}
}
}
}
//循环afterData并且合并name值用逗号隔开
afterData.map((item) => {
item.name= item.name.join(",");
});
console.log(afterData,'afterData')
3.返回新的数组对象
[{
id:1,
name:"A,C",
score:10,
},
{
id:2,
name:"B,D",
score:10,
},]