I am trying to combine/merge 2 array of objects by key in my case id.
Objective:
- I am expecting a results where I would have array containing all objects with ids 1,2,3,4 as per example
- Order of merging should not affect number of objects in result for example
combine(arr1,arr2)orcombine(arr2,arr1)should have array with same number of objects - Order of merging can only affect resulting object for example in case of
combine(arr1,arr2)arr2 key,values pair can override arr1 key,values just like deep jquery extend $.extend( true, arr1ObJ,arr2ObJ );
JSFIDDLE: https://jsfiddle.net/bababalcksheep/u2c05nyj/
Sample Data:
var arr1 = [{
id: 1,
name: "fred",
title: "boss"
}, {
id: 2,
name: "jim",
title: "nobody"
}, {
id: 3,
name: "bob",
title: "dancer"
}];
var arr2 = [{
id: 1,
wage: "300",
rate: "day"
}, {
id: 2,
wage: "10",
rate: "hour"
}, {
id: 4,
wage: "500",
rate: "week"
}];
var Result = [{
"id": 1,
"name": "fred",
"title": "boss",
"wage": "300",
"rate": "day"
}, {
"id": 2,
"name": "jim",
"title": "nobody",
"wage": "10",
"rate": "hour"
}, {
id: 3,
name: "bob",
title: "dancer"
}, {
id: 4,
wage: "500",
rate: "week"
}];
$.extend$.extend(true,arr1,arr2)skips key with id 3 . see here jsfiddle.net/bababalcksheep/u2c05nyj/2$.extendwon't work because it will think object withid: 3should be overwritten by object withid: 4