JavaScript 数组去重:识别相同 materialCode 和 craftCode 的对象
const data = [ { 'del': 0, 'createBy': 'GW00303172', 'createTime': '2023-10-16 11:17:16', 'updateBy': 'GW00303172', 'updateTime': '2023-10-16 11:17:16', 'id': 2685, 'processId': 1383, 'projectId': 35, 'productCode': 'PA 20230905 739d896a58', 'productBomCode': '20230905 11 63d3244aa7', 'materialCode': 'PA 20230905 739d896a58', 'materialName': '前衬套', 'electrophoreticArea': 200, 'weldBeadLength': 100, 'roughWeight': 2, 'materialCategory': '2', 'materialType': 0, 'supplierStatus': '1', 'materialStatus': '3', 'importanceLevel': '1', 'sourceFrom': '0', 'yieldCode': null, 'level': 1, 'weight': 1.02, 'specifications': '--', 'borrowRelation': 'J65', 'num': 1, 'targetPrice': 66, 'other': '1', 'projectCode': '1', 'materialId': 2685, 'deliveryAddress': '5', 'passRatio': '5', 'craftCode': 'GY000105', 'craftSubType': '3', 'type1': '0', 'type2': '0', 'type3': '0', 'productionPlaceCode': 'CD0003' }, { 'rowId': '1697437037701926', 'productCode': 'PA 20230905 739d896a58', 'projectCode': '1', 'productBomCode': '20230905 11 63d3244aa7', 'processId': 1383, 'materialCode': 'PA 20230905 739d896a58', 'materialName': '前衬套7', 'materialCategory': '2', 'specifications': '--', 'weight': 1.02, 'importanceLevel': '1', 'level': 1, 'sourceFrom': '0', 'materialId': 2685, 'productionPlaceCode': 'CD0006', 'deliveryAddress': '6', 'passRatio': '5', 'craftCode': 'GY000106', 'craftSubType': '6', 'type1': '0', 'type2': '1', 'type3': '0' }, { 'rowId': '1697437037701926', 'productCode': 'PA 20230905 739d896a58', 'projectCode': '1', 'productBomCode': '20230905 11 63d3244aa7', 'processId': 1383, 'materialCode': 'PA 20230905 739d896a58', 'materialName': '前衬套5', 'materialCategory': '2', 'specifications': '--', 'weight': 1.02, 'importanceLevel': '1', 'level': 1, 'sourceFrom': '0', 'materialId': 2685, 'productionPlaceCode': 'CD0006', 'deliveryAddress': '6', 'passRatio': '5', 'craftCode': 'GY000106', 'craftSubType': '6', 'type1': '0', 'type2': '1', 'type3': '0' }, { 'rowId': '1697437037701926', 'productCode': 'PA 20230905 739d896a58', 'projectCode': '1', 'productBomCode': '20230905 11 63d3244aa7', 'processId': 1383, 'materialCode': 'PA 20230905 666666', 'materialName': '前衬套', 'materialCategory': '2', 'specifications': '--', 'weight': 1.02, 'importanceLevel': '1', 'level': 1, 'sourceFrom': '0', 'materialId': 2685, 'productionPlaceCode': 'CD0006', 'deliveryAddress': '6', 'passRatio': '5', 'craftCode': 'GY0001111', 'craftSubType': '6', 'type1': '0', 'type2': '1', 'type3': '0' }, { 'rowId': '1697437037701926', 'productCode': 'PA 20230905 739d896a58', 'projectCode': '1', 'productBomCode': '20230905 11 63d3244aa7', 'processId': 1383, 'materialCode': 'PA 20230905 666666', 'materialName': '前衬套4', 'materialCategory': '2', 'specifications': '--', 'weight': 1.02, 'importanceLevel': '1', 'level': 1, 'sourceFrom': '0', 'materialId': 2685, 'productionPlaceCode': 'CD0006', 'deliveryAddress': '6', 'passRatio': '5', 'craftCode': 'GY0001113', 'craftSubType': '6', 'type1': '0', 'type2': '1', 'type3': '0' }, { 'rowId': '1697437037701926', 'productCode': 'PA 20230905 739d896a58', 'projectCode': '1', 'productBomCode': '20230905 11 63d3244aa7', 'processId': 1383, 'materialCode': 'PA 20230905 666666', 'materialName': '前衬套3', 'materialCategory': '2', 'specifications': '--', 'weight': 1.02, 'importanceLevel': '1', 'level': 1, 'sourceFrom': '0', 'materialId': 2685, 'productionPlaceCode': 'CD0006', 'deliveryAddress': '6', 'passRatio': '5', 'craftCode': 'GY0001113', 'craftSubType': '6', 'type1': '0', 'type2': '1', 'type3': '0' } ]; // es6 将数组中相同的materialCode中相同的craftCode对象打印出来 提示materialCode下的craftCode 存在相同数据内容:const duplicates = {};
data.forEach(item => { const materialCode = item.materialCode; const craftCode = item.craftCode;
if (!duplicates[materialCode]) { duplicates[materialCode] = {}; }
if (!duplicates[materialCode][craftCode]) { duplicates[materialCode][craftCode] = []; }
duplicates[materialCode][craftCode].push(item); });
for (const materialCode in duplicates) {
for (const craftCode in duplicates[materialCode]) {
if (duplicates[materialCode][craftCode].length > 1) {
console.log(materialCode: ${materialCode}, craftCode: ${craftCode});
console.log(duplicates[materialCode][craftCode]);
}
}
}
原文地址: https://www.cveoy.top/t/topic/pjbK 著作权归作者所有。请勿转载和采集!