Concating two arrays into one

You can make an object from first array a whole keys will be id of each object. Then use map() on b and return object having all props.

var a = [{
  id: 'aBcDeFgH',
  firstName: 'Juan',
  lastName: 'Doe',
  age: 32
 },
{
  id: 'zYxWvUt',
  firstName: 'Alex',
  lastName: 'Smith',
  age: 24
}]


var b = [{
  id: 'aBcDeFgH',
  occupation: 'architect',
  address: {
    street: '123 Main St',
    city: 'CityTown',
    Country: 'USA'
  }
},
{
  id: 'zYxWvUt',
  occupation: 'receptionist',
  address: {
    street: '555 Ocean Ave',
    city: 'Beach City',
    Country: 'USA'
  }
}]

let obj = a.reduce((ac,a) => (ac[a.id] = a,ac),{});
let res = b.map(x => ({...x,...obj[x.id]}));
console.log(res)


Sounds like you need to merge each item of each array together - and that they're both in the same order, in which case you could do:

const newList = []

a.forEach((item, index) => {
  newList.push({
    ...item,
    ...b[index]
  })
})

console.log(newList)

Tags:

Javascript