可以使用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属性上,使用逗号分隔。如果不存在,则将当前对象添加到结果数组中。最后返回结果数组

js 数组对象根据id合并相同对象相同num相加scanCode字符串拼接用分割

原文地址: https://www.cveoy.top/t/topic/ixBL 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录