Heim >Web-Frontend >js-Tutorial >Wie greife ich mithilfe von Punktnotationszeichenfolgen in JavaScript auf Eigenschaften verschachtelter Objekte zu?
Zugriff auf untergeordnete Objekteigenschaften über eine Punktnotationszeichenfolge
Beim Umgang mit verschachtelten Objekten kann der Zugriff auf tief vergrabene Eigenschaften umständlich sein. Die Bestimmung des idealen Wegs, dies mithilfe einer String-Punkt-Notation zu erreichen, hat zahlreiche Entwickler vor ein Rätsel gestellt.
Stellen Sie sich ein wie folgt definiertes Objekt vor:
var r = { a: 1, b: { b1: 11, b2: 99 } };
Um auf den Wert von b2 zuzugreifen, können Sie normalerweise verwenden :
r.b.b2 r['b']['b2']
Das Definieren einer Zeichenfolge wie var s = "b.b2" und der Versuch, auf r[s] oder zuzugreifen r.s schlägt fehl.
Lösung:
Eine Methode besteht darin, eine benutzerdefinierte Funktion zu erstellen, die die Zeichenfolge in Punkte aufteilt und iterativ die gewünschte Eigenschaft abruft. Ein einfaches Beispiel ist:
function getDescendantProp(obj, desc) { var arr = desc.split("."); while (arr.length && (obj = obj[arr.shift()])); return obj; } console.log(getDescendantProp(r, "b.b2")); // Outputs 99
Diese Funktion führt die Objekthierarchie basierend auf dem durch Punkte getrennten Pfad rekursiv abwärts und gibt den Endwert zurück. Insbesondere kann es auch den Zugriff auf Array-Indizes mithilfe der Punktnotation verarbeiten:
console.log(getDescendantProp({ a: [1, 2, 3] }, 'a.2')); // Outputs 3
Das obige ist der detaillierte Inhalt vonWie greife ich mithilfe von Punktnotationszeichenfolgen in JavaScript auf Eigenschaften verschachtelter Objekte zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!