I would like to merge the same specific json object on two different json arrays dependent on an json data ID.
JSON Data Set 1
{
"Product":[
{
"product_id": "123",
"location_id": "222",
"product_code": "abc",
},
{
"product_id": "456",
"location_id": "111",
"product_code": "xyz",
}
]
}
{
"Location":[
{
"location_id": 111,
"location_name": "alpha"
},
{
"location_id": 222,
"location_name": "tango"
}
]
}
{
"Product":[
{
"product_id": "456",
"location_id": "111",
"product_code": "xyz",
"location_name": "alpha"
},
{
"product_id": "123",
"location_id": "222",
"product_code": "abc",
"location_name": "tango"
}
]
}
var finalJson = {};
_.each(_.keys(productArray,locationArray), function(key) {
finalJson[key] = _.flatten(_.zip(productArray[key], locationArray[key]));
});
console.log(finalJson);
A simple algorithm could be using nested loops to go through both arrays, like this:
let allProducts = [{
"product_id": "123",
"location_id": "222",
"product_code": "abc",
},
{
"product_id": "456",
"location_id": "111",
"product_code": "xyz",
}
];
let allLocations = [
{
"location_id": 111,
"location_name": "alpha"
},
{
"location_id": 222,
"location_name": "tango"
}
];
let result = allProducts.map((product) => {
let matchingLocation = allLocations.find((location) => {
return location.location_id == product.location_id;
});
return Object.assign(product, matchingLocation);
})
console.log(result);