Einführung
In diesem Lab werden wir untersuchen, wie man in JavaScript-Objekten geschachtelte Werte mithilfe einer Funktion namens dig abruft. Diese Funktion kann verwendet werden, um einen bestimmten Wert aus einem komplexen geschachtelten Objekt abzurufen, was es einfacher macht, die erforderlichen Informationen zuzugreifen. Durch dieses Lab lernen Sie, wie Sie den in-Operator und die reduce()-Methode verwenden, um durch geschachtelte Objekte zu iterieren und den Zielwert zu finden.
Wie man einen geschachtelten Wert in einem JSON-Objekt erhält
Um einen Zielwert aus einem geschachtelten JSON-Objekt basierend auf einem angegebenen Schlüssel abzurufen, folgen Sie diesen Schritten:
- Öffnen Sie das Terminal/SSH und geben Sie
nodeein, um mit der Codeausführung zu beginnen. - Überprüfen Sie, ob das
targetimobjmithilfe desin-Operators vorhanden ist. - Wenn das
targetgefunden wird, geben Sie den entsprechenden Wert imobjzurück. - Wenn das
targetnicht gefunden wird, verwenden SieObject.values()undArray.prototype.reduce(), um diedig-Funktion rekursiv auf jedes geschachtelte Objekt aufzurufen, bis das erste übereinstimmende Schlüssel/Wert-Paar gefunden ist.
Hier ist der Code für die dig-Funktion:
const dig = (obj, target) =>
target in obj
? obj[target]
: Object.values(obj).reduce((acc, val) => {
if (acc !== undefined) return acc;
if (typeof val === "object") return dig(val, target);
}, undefined);
Um die dig-Funktion zu verwenden, erstellen Sie zunächst ein JSON-Objekt mit geschachtelten Ebenen, wie folgt:
const data = {
level1: {
level2: {
level3: "einige Daten"
}
}
};
Rufen Sie dann die dig-Funktion mit dem JSON-Objekt und dem gewünschten Schlüssel auf:
dig(data, "level3"); // 'einige Daten'
dig(data, "level4"); // undefined
Diese Beispiele werden den Wert des level3-Schlüssels im data-Objekt zurückgeben und undefined für den nicht vorhandenen level4-Schlüssel.
Zusammenfassung
Herzlichen Glückwunsch! Sie haben das Lab "Get Nested Value in Object" abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.