以下是一个示例代码,它根据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

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

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

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