你可以使用ES6的数组方法reduce()filter()来实现这个需求。首先,通过reduce()方法将数组中的相同materialCode的数据分组,然后使用filter()方法来判断每个分组中的craftCode是否存在相同的值,并打印出对应的数据和索引。

下面是实现这个需求的代码:

const data = [
  // 数据省略...
];

const duplicateCraftCodes = data.reduce((acc, curr, index) => {
  const existingIndex = acc.findIndex(item => item.materialCode === curr.materialCode);
  if (existingIndex !== -1) {
    const existingItem = acc[existingIndex];
    if (existingItem.craftCode !== curr.craftCode) {
      existingItem.duplicates.push({ data: curr, index });
    }
  } else {
    acc.push({ materialCode: curr.materialCode, duplicates: [] });
  }
  return acc;
}, []);

duplicateCraftCodes.forEach(({ materialCode, duplicates }) => {
  console.log(`Material Code '${materialCode}' has duplicate craft codes:`);
  duplicates.forEach(({ data, index }) => {
    console.log(`- Index ${index}:`, data);
  });
});

这段代码将打印出具有相同materialCode但存在相同craftCode的数据和索引。

ES6数组去重:查找重复Material Code和Craft Code数据

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

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