ES6数组去重:查找重复Material Code和Craft Code数据
你可以使用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的数据和索引。
原文地址: https://www.cveoy.top/t/topic/pi9l 著作权归作者所有。请勿转载和采集!