Gibt es eine bessere Möglichkeit, über zwei Array von Objekten zu iterieren, als was ich unten getan habe? Es scheint unordentlich, es so zu machen. Ich benutze lodash.Geschachtelt forEach Schleifen, um Objekt zu vorhandenem Objekt hinzuzufügen 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'}
];
Beispiel Ausgabe:
console.log(array1[0])
{
id:4356,
name: James,
sex: male,
person: {
id:4356,
salary: 1000,
job: programmer
}
}
Funktion:
_.forEach(array1, function(item1) {
_.forEach(array2, function(item2) {
if(item1.id === item2.id){
item1.person = item2;
}
});
});
Konvertieren Sie eines der Arrays zuerst in eine 'id -> Person'-Karte? –
Mögliches Duplikat von [Funktionale Verknüpfung von zwei js-Objekt-Arrays basierend auf einer gemeinsamen ID] (http://stackoverflow.com/questions/23591371/functionalway-of-joining-two-js-object-arrays-based-on) -common-id) – nograde
Gruff Bunnys Antwort (oben verlinkt) ist ziemlich umfassend. – nograde