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
           })
        }
  })

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

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值