2017-01-18 84 views
3

我有2 arrays in Angular 2我想基於一個關鍵值合併它們。

陣列1:基於一個公共鑰匙角度合併2個陣列2

[{"columnId":1,"type":"value 1"},{"columnId":2,"type":"value 2"}] 

陣列2:

[{"columnId":1,"field":"field 1"},{"columnId":2,"field":"field 2"}] 

所以我想最終結果爲

[{"columnId":1,"field":"field 1","type":"value 1"},{"columnId":2,"field":"field 2","type":"value 2"}] 

回答

4

這應該做你想要什麼:

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"}] 
+0

非常感謝。 :) –