Einführung
In diesem Lab werden wir eine JavaScript-Funktion untersuchen, die ein Objekt mit den Pfaden für die Schlüssel flachstellt. Die Funktion verwendet Rekursion und Object.keys(), kombiniert mit Array.prototype.reduce(), um jeden Blattknoten in einen flachen Pfadknoten umzuwandeln. Am Ende dieses Labs werden Sie ein besseres Verständnis dafür haben, wie Sie JavaScript-Objekte manipulieren und sie flachstellen, um die Datenverarbeitung zu erleichtern.
Ein Objekt flachstellen
Um ein Objekt mit Pfaden für die Schlüssel zu flachstellen, folgen Sie diesen Schritten:
- Öffnen Sie das Terminal/SSH und geben Sie
nodeein, um mit der Codeausführung zu beginnen. - Verwenden Sie Rekursion, um das Objekt zu flachstellen.
- Verwenden Sie
Object.keys(), kombiniert mitArray.prototype.reduce(), um jeden Blattknoten in einen flachen Pfadknoten umzuwandeln. - Wenn der Wert eines Schlüssels ein Objekt ist, rufen Sie die Funktion rekursiv mit dem entsprechenden
prefixauf, um den Pfad mitObject.assign()zu erstellen. - Andernfalls fügen Sie das entsprechend vorangestellte Schlüssel-Wert-Paar dem Akkumulatorobjekt hinzu.
- Überspringen Sie das zweite Argument,
prefix, es sei denn, Sie möchten, dass jeder Schlüssel einen Präfix hat.
Hier ist eine Beispielimplementierung:
const flattenObject = (obj, prefix = "") =>
Object.keys(obj).reduce((acc, k) => {
const pre = prefix.length ? `${prefix}.` : "";
if (
typeof obj[k] === "object" &&
obj[k] !== null &&
Object.keys(obj[k]).length > 0
) {
Object.assign(acc, flattenObject(obj[k], pre + k));
} else {
acc[pre + k] = obj[k];
}
return acc;
}, {});
Sie können die flattenObject-Funktion wie folgt verwenden:
flattenObject({ a: { b: { c: 1 } }, d: 1 }); // { 'a.b.c': 1, d: 1 }
Zusammenfassung
Herzlichen Glückwunsch! Sie haben das Lab "Object Flattening" abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.