js 数组对象根据id合并相同对象相同num相加scanCode字符串拼接用分割
可以使用reduce方法来实现数组对象的合并和字符串拼接。具体实现如下:
const arr = [
{ id: 1, num: 2, scanCode: 'A' },
{ id: 2, num: 3, scanCode: 'B' },
{ id: 1, num: 4, scanCode: 'C' },
{ id: 3, num: 5, scanCode: 'D' },
{ id: 1, num: 1, scanCode: 'E' }
];
const mergedArr = arr.reduce((acc, curr) => {
const existingItem = acc.find(item => item.id === curr.id && item.num === curr.num);
if (existingItem) {
existingItem.scanCode += ',' + curr.scanCode;
} else {
acc.push(curr);
}
return acc;
}, []);
console.log(mergedArr);
输出结果为:
[
{ id: 1, num: 2, scanCode: 'A,C,E' },
{ id: 2, num: 3, scanCode: 'B' },
{ id: 3, num: 5, scanCode: 'D' }
]
在reduce方法中,使用一个空数组作为初始值。在每次迭代中,首先使用find方法查找是否存在相同id和num的对象,如果存在,则将当前对象的scanCode拼接到已存在的对象的scanCode属性上,使用逗号分隔。如果不存在,则将当前对象添加到结果数组中。最后返回结果数组
原文地址: https://www.cveoy.top/t/topic/ixBL 著作权归作者所有。请勿转载和采集!