我是写树形结构的时候,需要合并数据给后端,所以有了以下的代码。
就是将数据中 departmentId 相同的,合并到一起,只有一个的就返回一个
原数据
let oldArr = [
{ doctorId: 2204, departmentId: 628 },
{ doctorId: 435, departmentId: 628 },
{ doctorId: 434, departmentId: 628 },
{ doctorId: 433, departmentId: 628 },
];
想要的数据
defdata() {
let oldArr = [
{ doctorId: 2204, departmentId: 628 },
{ doctorId: 435, departmentId: 628 },
{ doctorId: 434, departmentId: 628 },
{ doctorId: 433, departmentId: 628 },
];
let tempArr = [],
newArr = [];
for (var i = 0; i < oldArr.length; i++) {
if (tempArr.indexOf(oldArr[i].departmentId) === -1) {
newArr.push({
departmentId: oldArr[i].departmentId,
doctorId: oldArr[i].doctorId+',',
});
tempArr.push(oldArr[i].departmentId);
} else {
for (let j = 0; j < newArr.length; j++) {
if (newArr[j].departmentId == oldArr[i].departmentId) {
newArr[j].doctorId += oldArr[i].doctorId + ",";
break;
}
}
}
}
return newArr;
},
submit() {
let lasttest = this.defdata();
lasttest.map((item) => {
item.doctorId=item.doctorId.substr(0,item.doctorId.length-1)
item.doctorId = item.doctorId.split(",");
});
// console.log(lasttest);
},