鍍金池/ 問答/HTML/ js 數(shù)組合并問題

js 數(shù)組合并問題

var a = [
  {
    id: 1,
    name: '...'  
  },
  {
    id: 2,
    name: '...'
  }
]
var b = [
  {
    id: 1,
    age: 10
  },
  {
    id: 2,
    age: 10
  }
]

比如說有以上兩個數(shù)組,我希望得到的結(jié)果如下:

[{ id: 1, name: '...', age: 10 }, { id: 2, name: '...', age: 10 }]

有什么比較高效的方法嗎?并不能保證a和b中的id順序一致

回答
編輯回答
陌南塵

可以直接這樣寫

var arr1 = ['a', 'b'];
var arr2 = ['c'];
var arr3 = ['d', 'e'];
[...arr1, ...arr2, ...arr3]
// [ 'a', 'b', 'c', 'd', 'e' ]

clipboard.png

2018年7月22日 11:32
編輯回答
黑與白

我會這樣寫

let map = {}
a.forEach(item => {
  map[item.id] = item
})
b.map(item => {
  let currentItem = map[item.id] || {}
  return { ...item, ...currentItem }
})
2018年3月19日 16:20
編輯回答
喵小咪
a.map( itema => Object.assign({}, itema, b.find( itemb => itemb.id === itema.id)) )
2017年10月29日 14:45