オブジェクトの2つの配列に対して、以下で行ったことよりも優れた方法がありますか?このようにするのは面倒です。私はロダッシュを使用しています。ネストされた各ループは既存のオブジェクトにオブジェクトを追加するjavascript
var array1 = [
{id:4356, name: 'James', sex: 'male'},
{id:7899, name: 'Jimmy', sex: 'male'},
{id:2389, name: 'Dawn', sex: 'female'}
];
var array2 = [
{id:4356, salary: 1000, job: 'programmer'},
{id:7899, salary: 2000, job: 'tester'},
{id:2389, salary: 3000, job: 'manager'}
];
出力例:
console.log(array1[0])
{
id:4356,
name: James,
sex: male,
person: {
id:4356,
salary: 1000,
job: programmer
}
}
機能:あなたはlodash使用しているので
_.forEach(array1, function(item1) {
_.forEach(array2, function(item2) {
if(item1.id === item2.id){
item1.person = item2;
}
});
});
まず、配列の1つを 'id - > person'マップに変換しますか? –
[共通IDに基づいて2つのjsオブジェクト配列を結合する機能的な方法]の可能な複製(http://stackoverflow.com/questions/23591371/functional-way-of-joining-two-js-object-arrays-based-on -common-id) – nograde
Gruff Bunnyの答え(上記リンク先)はかなり包括的です。 – nograde