首页 > 解决方案 > 按键合并带下划线的数组

问题描述

我有 2 个数组:

[{id:1,name:"name"},{id:2,name:"name2"} ,{id:3,name:"name3"}]

[{id:1,date:"123"},{id:2,date:"456"}]

仅当 id 相等时才应更新数组 1:因此数组 1 看起来像

它不应该创建一个新数组。仅根据数组 2 更​​新数组 1

[{id:1,name:"name",date:"123"},{id:2,name:"name2",date:"456"} ,{id:3,name:"name3"}]

我设法在 for 过滤器上和内部使用 for 循环来做到这一点,array2如下所示:

._filter(array1,function(item){
 If(item.id=array2.id)
    Do smth and update the array1.date
})

我如何以最好的方式做到这一点?使用 underscore.js

标签: javascriptunderscore.js

解决方案


尝试这个 :

var a = [{id:1,name:"name"},{id:2,name:"name2"} ,{id:3,name:"name3"}] ;
var b = [{id:1,date:"123"},{id:2,date:"456"}] ;
var i = 0, j = 0 ;

while( i < a.length ) {
  j = 0 ;
  while( j < b.length) {
    if ( a[i].id === b[j].id )
      Object.assign( a[i] , b[j] );
    j++; 
  }
  i++;
}

console.log(a) ;


推荐阅读