js计算数组里的对象的某个值相同,其余值相加

本文介绍了一种使用JavaScript实现的数组元素合并及去重的方法。通过对原始数组进行遍历,将相同Code的项合并,并累加其Quantity值。该过程保持了每个元素的ItemType属性不变,最终形成了一个新的数组,该数组中的每一项都对应于原始数组中具有相同Code的不同项的合并结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    let arry=[
    {Code:'x',Quantity:1,ItemType:'normal'},
    {Code:'x',Quantity:2,ItemType:'normal'},
    {Code:'x',Quantity:5,ItemType:'normal'},
    {Code:'y',Quantity:1,ItemType:'spec'},
    {Code:'y',Quantity:2,ItemType:'spec'},
    {Code:'z',Quantity:1,ItemType:'normal'},
    ]
    let newfood=[];
    var temp = {};
        for(var i in arry) {
            var key= arry[i].Code;
            if(temp[key]) {
                temp[key].Code = temp[key].Code ;
                temp[key].Quantity = temp[key].Quantity+ arry[i].Quantity;

            } else {
                temp[key] = {};
                temp[key].Code = arry[i].Code;
                temp[key].Quantity = arry[i].Quantity;

            }
            temp[key].ItemType= arry[i].ItemType; 
        }
      for(var k in temp){
         newfood.push(temp[k])
      }
      alert(JSON.stringify(newfood));
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值