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"}]
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"}]
Share
Improve this question
edited Jan 18, 2017 at 10:07
eko
40.7k11 gold badges78 silver badges101 bronze badges
asked Jan 18, 2017 at 10:06
Jeeten ParmarJeeten Parmar
5,78715 gold badges64 silver badges111 bronze badges
1 Answer
Reset to default 8This 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"}]