Einführung
In diesem Lab werden wir den Prozess des Zusammenführens von Objekten in JavaScript erkunden. Das Lab führt Sie Schritt für Schritt durch den Prozess des Erstellens eines neuen Objekts, indem Sie zwei oder mehr Objekte kombinieren. Sie werden lernen, wie Sie Array.prototype.reduce() und Object.keys() verwenden, um über Objekte und Schlüssel zu iterieren, und Object.prototype.hasOwnProperty() und Array.prototype.concat(), um die Werte für vorhandene Schlüssel zusammenzuführen.
Objekt-Merge-Funktion
Um zwei oder mehr Objekte zu kombinieren, folgen Sie diesen Schritten:
- Öffnen Sie das Terminal/SSH und geben Sie
nodeein, um zu beginnen zu programmieren. - Verwenden Sie
Array.prototype.reduce()zusammen mitObject.keys(), um über alle Objekte und Schlüssel zu iterieren. - Verwenden Sie
Object.prototype.hasOwnProperty()undArray.prototype.concat(), um die Werte für Schlüssel, die in mehreren Objekten vorhanden sind, anzuhängen. - Verwenden Sie den angegebenen Codeausschnitt, um ein neues Objekt aus der Kombination von zwei oder mehr Objekten zu erstellen.
const merge = (...objs) =>
[...objs].reduce(
(acc, obj) =>
Object.keys(obj).reduce((a, k) => {
acc[k] = acc.hasOwnProperty(k)
? [].concat(acc[k]).concat(obj[k])
: obj[k];
return acc;
}, {}),
{}
);
Beispielsweise betrachten Sie die folgenden Objekte:
const object = {
a: [{ x: 2 }, { y: 4 }],
b: 1
};
const other = {
a: { z: 3 },
b: [2, 3],
c: "foo"
};
Wenn Sie diese beiden Objekte mit der merge()-Funktion kombinieren, erhalten Sie das folgende Ergebnis:
merge(object, other);
// { a: [ { x: 2 }, { y: 4 }, { z: 3 } ], b: [ 1, 2, 3 ], c: 'foo' }
Zusammenfassung
Herzlichen Glückwunsch! Sie haben das Lab „Merge Objects“ abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.