mergeSameData(arr, mergePro, samePro) {
const resData = []
const arrData = JSON.parse(JSON.stringify(arr))
const deleIndex = []
arrData.forEach((item, i) => {
const arrName = [item[mergePro]]
for (let j = i + 1; j < arrData.length; j++) {
if (arrData[j][samePro] === item[samePro]) {
arrName.push(arrData[j][mergePro])
deleIndex.push(j)
}
}
item[mergePro] = arrName.join('、')
resData.push(item)
})
deleIndex = [...new Set(deleIndex)]
if (deleIndex.length > 0) {
for (let i = deleIndex.length - 1; i >= 0; i--) {
resData.splice(deleIndex[i], 1)
}
console.log('resData', resData)
}
return resData
}
①原数据:
originData = [{
name: '名称1',
value: 20
},{
name: '名称2',
value: 80
},{
name: '名称3',
value: 40
},{
name: '名称4',
value: 20
},{
name: '名称5',
value: 100
},{
name: '名称6',
value: 20
}]
②调用方法:
mergeSameData(originData,name,value)
③最终的结果:
resData = [{
name: '名称1、名称4、名称6',
value: 20
},{
name: '名称2',
value: 80
},{
name: '名称3',
value: 40
},{
name: '名称5',
value: 100
}]