Einführung
In diesem Lab arbeiten wir an einem JavaScript-Programmieraufgabe, die darauf abzielt, zwei Objekt-Arrays basierend auf einer bestimmten Eigenschaft zu kombinieren. Das Ziel dieser Aufgabe ist es, Ihnen zu helfen, die Verwendung der Array.prototype.reduce()-Methode und der Objektmanipulation in JavaScript zu üben, was für jeden Entwickler, der mit JavaScript arbeitet, essentielle Fertigkeiten sind. Am Ende dieses Labs sollten Sie in der Lage sein, zwei Objekt-Arrays basierend auf einer Eigenschaft nahtlos zu kombinieren, um ein neues Array zu erstellen.
Funktion zum Kombinieren von Objekt-Arrays basierend auf einem bestimmten Schlüssel
Um zwei Objekt-Arrays basierend auf einem bestimmten Schlüssel zu kombinieren, folgen Sie diesen Schritten:
- Öffnen Sie das Terminal/SSH und geben Sie
nodeein, um mit der Codeausführung zu beginnen. - Verwenden Sie
Array.prototype.reduce()mit einem Objekt-Akkumulator, um alle Objekte in beiden Arrays basierend auf der angegebenenpropzu kombinieren. - Verwenden Sie
Object.values(), um das resultierende Objekt in ein Array zu konvertieren und zurückzugeben.
Hier ist die Funktion, die Sie verwenden können:
const combine = (a, b, prop) =>
Object.values(
[...a, ...b].reduce((acc, v) => {
if (v[prop])
acc[v[prop]] = acc[v[prop]] ? { ...acc[v[prop]], ...v } : { ...v };
return acc;
}, {})
);
Hier ist ein Beispiel, wie diese Funktion verwendet werden kann:
const x = [
{ id: 1, name: "John" },
{ id: 2, name: "Maria" }
];
const y = [{ id: 1, age: 28 }, { id: 3, age: 26 }, { age: 3 }];
combine(x, y, "id");
// [
// { id: 1, name: 'John', age: 28 },
// { id: 2, name: 'Maria' },
// { id: 3, age: 26 }
// ]
Zusammenfassung
Herzlichen Glückwunsch! Sie haben das Lab "Kombinieren von Objekt-Arrays" abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.