數組合並值相加

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章