两个数组对象合并

    let array = [{label:9000,items:[{a:'相同'}]},{label:2000,items:[{a:'相同'}]}, {label:8000,items:[{a:''}]}];
    let temp = [{label:9000,items:[{b:'相同2'}]}, {label:5000,items:[{b:''}]}];
处理为下面的这种
[{label:9000,items:[{a:'相同'},{b:'相同2'}]},{label:2000,items:[{a:'相同'}]}, {label:8000,items:[{a:''}]}, {label:5000,items:[{b:''}]}];

array.forEach(item=>{
    //case1:如果array里的label:9000在temp里也有label:9000,就把这个label所在对象的items里的对象给temp里的label:9000所对应的items
    //case2:如果temp里没有label=8000这一项 就把这一项的对象push给temp
    let has;
    temp.forEach(item1=>{
      if(item.label==item1.label){
        has=true;
        item1.items=item.items.concat(item1.items);
      }
    })
    if(!has){
      temp.push(item)
    }
  })
  console.log(temp)
posted @ 2019-10-25 17:27  liyichao  阅读(3627)  评论(0编辑  收藏  举报