キーに基づいたオブジェクトの配列のマージ
目的
このタスクは、共通のキーに基づいて、反復処理せずに 2 つのオブジェクトの配列をマージすることです。
例シナリオ
次の 2 つの配列を考えます:
1 2 3 4 5 6 7 8 9 10 11 | Array 1:
[
{ id: "abdc4051" , date : "2017-01-24" },
{ id: "abdc4052" , date : "2017-01-22" }
]
Array 2:
[
{ id: "abdc4051" , name: "ab" },
{ id: "abdc4052" , name: "abc" }
]
|
ログイン後にコピー
目的は、取得する ID キーに基づいてこれらの配列をマージすることです:
1 2 3 4 | [
{ id: "abdc4051" , date : "2017-01-24" , name: "ab" },
{ id: "abdc4052" , date : "2017-01-22" , name: "abc" }
]
|
ログイン後にコピー
反復処理を行わないソリューションKeys
オブジェクトを反復処理せずにこれを達成するにはkey:
1 2 3 4 5 6 7 8 9 10 11 12 13 | let arr1 = [
{ id: "abdc4051" , date : "2017-01-24" },
{ id: "abdc4052" , date : "2017-01-22" }
];
let arr2 = [
{ id: "abdc4051" , name: "ab" },
{ id: "abdc4052" , name: "abc" }
];
let arr3 = arr1.map((item, i) => Object.assign({}, item, arr2[i]));
console.log(arr3);
|
ログイン後にコピー
このコードは、Object.assign() メソッドを使用して、両方の配列の同じインデックスにあるオブジェクトのプロパティをマージします。結果は、両方の配列のプロパティを組み合わせた新しい配列です。
以上が明示的なキーの反復を行わずに、共有キーに基づいてオブジェクトの 2 つの配列をマージするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。