Reputation: 5757
I have 2 arrays
in Angular 2
and I want to merge them based on one key value.
Array 1 :
[{"columnId":1,"type":"value 1"},{"columnId":2,"type":"value 2"}]
Array 2 :
[{"columnId":1,"field":"field 1"},{"columnId":2,"field":"field 2"}]
And so I want final result as
[{"columnId":1,"field":"field 1","type":"value 1"},{"columnId":2,"field":"field 2","type":"value 2"}]
Upvotes: 5
Views: 3420
Reputation: 4787
This should do what you want:
const arr1 = [{"columnId":1,"type":"value 1"},{"columnId":2,"type":"value 2"}];
const arr2 = [{"columnId":1,"field":"field 1"},{"columnId":2,"field":"field 2"}];
const result = arr1.map(val => {
return Object.assign({}, val, arr2.filter(v => v.columnId === val.columnId)[0]);
});
console.log(result);
// [{"columnId":1,"field":"field 1","type":"value 1"},{"columnId":2,"field":"field 2","type":"value 2"}]
Upvotes: 8