JavaScript 数组去重:查找重复的工艺代码 (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 getDuplicatedCraftCodes = (data) => { const craftCodes = {};
data.forEach((item) => { const { materialCode, craftCode } = item; if (!craftCodes[materialCode]) { craftCodes[materialCode] = new Set(); } craftCodes[materialCode].add(craftCode); });
const duplicatedCraftCodes = {};
for (let materialCode in craftCodes) { const craftCodeSet = craftCodes[materialCode]; if (craftCodeSet.size > 1) { duplicatedCraftCodes[materialCode] = Array.from(craftCodeSet); } }
return duplicatedCraftCodes; }
const duplicatedCraftCodes = getDuplicatedCraftCodes(data); console.log(duplicatedCraftCodes);
原文地址: https://www.cveoy.top/t/topic/pjbo 著作权归作者所有。请勿转载和采集!