js 数组对象根据id合并相同对象相同checkNum相加而且scanCode字符串拼接用分割
以下是一个示例代码,它根据id合并相同对象并将相同checkNum的值相加,同时将scanCode字符串使用逗号进行拼接。
const arr = [
{ id: 1, checkNum: 10, scanCode: 'A' },
{ id: 1, checkNum: 20, scanCode: 'B' },
{ id: 2, checkNum: 30, scanCode: 'C' },
{ id: 2, checkNum: 40, scanCode: 'D' },
{ id: 3, checkNum: 50, scanCode: 'E' },
{ id: 3, checkNum: 60, scanCode: 'F' }
];
const mergedArr = arr.reduce((acc, curr) => {
const existingObj = acc.find(obj => obj.id === curr.id && obj.checkNum === curr.checkNum);
if (existingObj) {
existingObj.scanCode += `,${curr.scanCode}`;
} else {
acc.push(curr);
}
return acc;
}, []);
console.log(mergedArr);
运行以上代码,输出结果为:
[
{ id: 1, checkNum: 10, scanCode: 'A,B' },
{ id: 2, checkNum: 30, scanCode: 'C' },
{ id: 2, checkNum: 40, scanCode: 'D' },
{ id: 3, checkNum: 50, scanCode: 'E' },
{ id: 3, checkNum: 60, scanCode: 'F' }
]
在上述代码中,使用了reduce函数来遍历数组arr,并根据id和checkNum来判断是否存在相同对象。如果存在相同对象,则将scanCode字符串进行拼接;否则,将当前对象添加到结果数组中。最后,返回合并后的数组mergedArr
原文地址: https://www.cveoy.top/t/topic/ixBQ 著作权归作者所有。请勿转载和采集!