js 数组对象某个值相同合并相同项在一个对象中

let data = [
	{
		DATE_T: "20211220"
		DAY_WT: 0.64
		ITEM_ID: "JYD130018"
		ITEM_NAME: "线材"
		TYPE: "线材"
		UNIT: "万吨"
		UNIT_CODE: "EG"
	},
	{
		DATE_T: "20211220"
		DAY_WT: 2.77
		ITEM_ID: "JYD130018"
		ITEM_NAME: "中厚板"
		TYPE: "中厚板"
		UNIT: "万吨"
		UNIT_CODE: "EG"
	},
	{
		DATE_T: "20211220"
		DAY_WT: 0.84
		ITEM_ID: "JYD130018"
		ITEM_NAME: "棒材"
		TYPE: "棒材"
		UNIT: "万吨"
		UNIT_CODE: "EG"
	},
	{
		DATE_T: "20211220"
		DAY_WT: 0.53
		ITEM_ID: "JYD130019"
		ITEM_NAME: "线材"
		TYPE: "线材"
		UNIT: "万吨"
		UNIT_CODE: "SG"
	},
	{
		DATE_T: "20211220"
		DAY_WT: 0.4
		ITEM_ID: "JYD130019"
		ITEM_NAME: "中厚板"
		TYPE: "中厚板"
		UNIT: "万吨"
		UNIT_CODE: "SG"
	},
	{
		DATE_T: "20211220"
		DAY_WT: 1.32
		ITEM_ID: "JYD130019"
		ITEM_NAME: "直条螺纹钢"
		TYPE: "直条螺纹钢"
		UNIT: "万吨"
		UNIT_CODE: "SG"
	},
	{
		DATE_T: "20211220"
		DAY_WT: 1.17
		ITEM_ID: "JYD130020"
		ITEM_NAME: "线材"
		TYPE: "线材"
		UNIT: "万吨"
		UNIT_CODE: "ZN"
	},
	{
		DATE_T: "20211220"
		DAY_WT: 3.17
		ITEM_ID: "JYD130020"
		ITEM_NAME: "中厚板"
		TYPE: "中厚板"
		UNIT: "万吨"
		UNIT_CODE: "ZN"
	},
	{
		DATE_T: "20211220"
		DAY_WT: 0.84
		ITEM_ID: "JYD130020"
		ITEM_NAME: "棒材"
		TYPE: "棒材"
		UNIT: "万吨"
		UNIT_CODE: "ZN"
	},
	{
		DATE_T: "20211220"
		DAY_WT: 1.32
		ITEM_ID: "JYD130020"
		ITEM_NAME: "直条螺纹钢"
		TYPE: "直条螺纹钢"
		UNIT: "万吨"
		UNIT_CODE: "ZN"
	},
]
let res=[],obj={},index=0;
data.forEach(item=>{
		//Object的hasOwnProperty()方法返回一个布尔值,判断对象是否包含特定的自身(非继承)属性。
		//判断属性对象中是否存在这个相同key,若存在就赋值
       if(obj.hasOwnProperty(item.ITEM_NAME)){
          res[obj[item.ITEM_NAME]][item.UNIT_CODE] = item.DAY_WT || 0;
       }else{
           obj[item.ITEM_NAME] = index++;
           res.push({
           	ITEM_NAME:item.ITEM_NAME,
           	UNIT:item.UNIT,
           	[item.UNIT_CODE]: item.DAY_WT || 0
           })
        }
  })

结果:
在这里插入图片描述


版权声明:本文为weixin_38031256原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。