-5

I have two arrays as follows

 var arr1 = [
  {
    name: "abc"
  },
   {
    name: "xyz"
  }
  ];

var arr2 = [
  {
    age: 18
  },
   {
    age: 21
  }
 ];

I want the above to arrays to be merged like Below

arr3 =  [
  {
    name:"abc",
    age: 18
  },
   {
    name:"xyz",
    age: 21
  }
 ];

Any help would be highly encouraged

Mani_MR
  • 93
  • 1
  • 8

1 Answers1

0

If you have just two arrays, you could use the object spread operator to do something like the following:

function combine(arr1, arr2) {
  return arr1.map((obj, idx) => ({
    ...obj,
    ...arr2[idx]
  }));
}

var arr1 = [
  {
    name: "abc"
  },
   {
    name: "xyz"
  }
];

var arr2 = [
  {
    age: 18
  },
   {
    age: 21
  }
];

console.log(combine(arr1, arr2));

If you're using lodash, you can easily do this by using _.merge:

var arr1 = [
  {
    name: "abc"
  },
   {
    name: "xyz"
  }
];

var arr2 = [
  {
    age: 18
  },
   {
    age: 21
  }
];
 
console.log(_.merge(arr1, arr2));
<script src="https://unpkg.com/lodash@4.17.15/lodash.min.js"></script>
Turtlefight
  • 9,420
  • 2
  • 23
  • 40