Heim >Web-Frontend >js-Tutorial >Wie kann ich mithilfe einer Punktnotationszeichenfolge auf verschachtelte JavaScript-Objekteigenschaften zugreifen?
Zugriff auf verschachtelte Objekteigenschaften mithilfe von Punktnotationszeichenfolgen in JavaScript
Beim Bearbeiten von Objekten ist es häufig erforderlich, auf tief verschachtelte Eigenschaften zuzugreifen. Dies lässt sich zwar mit Punktnotation und Klammernotation erreichen, sie erfordern jedoch die individuelle Angabe jeder Verschachtelungsebene. Dies kann bei komplexen Objekten mühsam und fehleranfällig werden.
Eine praktische Lösung besteht darin, eine Punktnotationszeichenfolge zu verwenden, um direkt auf die Eigenschaften von untergeordneten Objekten zuzugreifen. Stellen Sie sich ein Objekt mit der folgenden Struktur vor:
const r = { a: 1, b: { b1: 11, b2: 99 } };
Um mit der Punktnotation auf den Wert 99 zuzugreifen, schreiben Sie normalerweise:
r.b.b2;
Was aber, wenn Sie dynamisch auf den Wert 99 zugreifen möchten? Eigenschaft unter Verwendung einer variablen Zeichenfolge, wie zum Beispiel:
const s = "b.b2";
In diesem Szenario einfache Punktnotation (z. B. r.s) oder Klammernotation (r[s]) funktioniert nicht.
Benutzerdefinierte Funktion zum Abrufen von Eigenschaften
Ein Ansatz besteht darin, eine benutzerdefinierte Funktion zu erstellen, um die Zeichenfolge durch das Punktzeichen zu teilen und iterativ auf die Eigenschaften zugreifen:
function getDescendantProp(obj, desc) { const arr = desc.split("."); while (arr.length && (obj = obj[arr.shift()])); return obj; } console.log(getDescendantProp(r, "b.b2")); // 99
Diese Funktion vereinfacht den Zugriff auf verschachtelte Eigenschaften mithilfe einer Zeichenfolgendarstellung. Sie können es auch erweitern, um den Array-Indexzugriff zu verarbeiten, indem Sie das Teilungszeichen entsprechend ändern.
Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe einer Punktnotationszeichenfolge auf verschachtelte JavaScript-Objekteigenschaften zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!