Jeeten Parmar
Jeeten Parmar

Reputation: 5757

Merging 2 arrays based on one common key angular 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"}]

Upvotes: 5

Views: 3420

Answers (1)

Santanu Biswas
Santanu Biswas

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

Related Questions