利用{}或Map的key唯一性进行数组同项取出合并数据
let newArr = []
let obj = {} // let map: any = new Map()
this.personList.map(item => {
//判断是否已经存在唯一的key,若不存在则存入obj中,
if (!obj[item.taskId]) { //if(!map.has(item.taskId))
obj[item.taskId] = 1 //存入一个id的key值保持唯一 // map.set(item.taskId, 1)
newArr.push({ // 保存未有的id项数据
taskId: item.taskId,
taskName: item.taskName,
data: [item]
})
} else { // 若已经存在则将改项obj的唯一key数据,存在对应newArr数组中的data中
for (let i = 0; i < newArr.length; i++) {
if (newArr[i].taskId === item.taskId) {
newArr[i].data.push(item) // 将id相同的项,合并到id相同的数组newArr中的data中
}
}
}
})