Merge 2 arrays of objects Merge 2 arrays of objects javascript javascript

Merge 2 arrays of objects


If you want to merge 2 arrays of objects in JavaScript. You can use this one line trick

Array.prototype.push.apply(arr1,arr2);

For Example

var arr1 = [{name: "lang", value: "English"},{name: "age", value: "18"}];var arr2 = [{name : "childs", value: '5'}, {name: "lang", value: "German"}];Array.prototype.push.apply(arr1,arr2); console.log(arr1);  // final merged result will be in arr1

Output:

[{"name":"lang","value":"English"},{"name":"age","value":"18"},{"name":"childs","value":"5"},{"name":"lang","value":"German"}]


With ES6 you can do it very easy as below:

var arr1 = new Array({name: "lang", value: "German"}, {name: "age", value: "18"});var arr2 = new Array({name : "childs", value: '5'}, {name: "lang", value: "German"});var arr3 = [...arr1, ...arr2];

Output:

    arr3 = [      {"name":"lang","value":"German"},      {"name":"age","value":"18"},      {"name":"childs","value":"5"},      {"name":"lang","value":"German"}    ]


For those who are experimenting with modern things:

var odd = [{    name: "1",    arr: "in odd"  },  {    name: "3",    arr: "in odd"  }];var even = [{    name: "1",    arr: "in even"  },  {    name: "2",    arr: "in even"  },  {    name: "4",    arr: "in even"  }];// ----// ES5 using Array.filter and Array.findfunction merge(a, b, prop) {  var reduced = a.filter(function(aitem) {    return !b.find(function(bitem) {      return aitem[prop] === bitem[prop];    });  });  return reduced.concat(b);}console.log("ES5", merge(odd, even, "name"));// ----// ES6 arrow functionsfunction merge(a, b, prop) {  var reduced = a.filter(aitem => !b.find(bitem => aitem[prop] === bitem[prop]))  return reduced.concat(b);}console.log("ES6", merge(odd, even, "name"));// ----// ES6 one-linervar merge = (a, b, p) => a.filter(aa => !b.find(bb => aa[p] === bb[p])).concat(b);console.log("ES6 one-liner", merge(odd, even, "name"));// Results// ( stuff in the "b" array replaces things in the "a" array )// [//    {//         "name": "3",//         "arr": "in odd"//     },//     {//         "name": "1",//         "arr": "in even"//     },//     {//         "name": "2",//         "arr": "in even"//     },//     {//         "name": "4",//         "arr": "in even"//     }// ]