数组合并值相加

2017年12月5日 周二。

ng2中数组合并值相加(根据名称相同合并金额)

方法一:这种方法只适用于单一条件合并。

    let data = [
      {name:"A",count:15},
      {name:"B",count:20},
      {name:"A",count:15}
    ];
    let obj = {};
    let arr = [];
    data.forEach(m=>{
      let name = m.name;
      if(!obj[name]){
        obj[name] = m.count;
        arr.push(m);
      }
      else{
        arr.forEach(e=>{
          if(e.name === name){
            e.count += m.count;
          }
        })
      }
    });
console.log(arr);

得出的结果是
这里写图片描述

===================
更2017-12-19 还是周二。
之前写的太复杂,又写了一个新的。

let data = [
      {names:{"id":1,"name":"A"},ages:{"id":1,"age":"22"},count:3500},
      {names:{"id":1,"name":"B"},ages:{"id":1,"age":"23"},count:3000},
     {names:{"id":1,"name":"A"},ages:{"id":1,"age":"22"},count:3500},
      {names:{"id":1,"name":"A"},ages:{"id":1,"age":"25"},count:3500},
    ];
_.each(data,function(item,index){
    let has=false;
     _.each(temp,function(t,i){                 if(item.names.name==t.names.name&&item.ages.age==t.ages.age){
       has=true;
       t.count+=item.count;
         }
    });
    if(has!=true){
        temp.push(item);
    };
})

ok.sea

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值