Zugriff auf untergeordnete Objekteigenschaften mit Punktnotationszeichenfolge
Der Zugriff auf untergeordnete Eigenschaften von JavaScript-Objekten mithilfe der verketteten Punktnotation ist eine häufige Programmieraufgabe. Bei der Verwendung dieses Ansatzes für den Zugriff auf dynamische Eigenschaften gibt es jedoch Einschränkungen.
Betrachten Sie das folgende Objekt:
var r = { a: 1, b: { b1: 11, b2: 99 } };
Um auf den Wert von b2 zuzugreifen, kann man die Standardpunktnotation verwenden:
r.b.b2
Wenn jedoch ein dynamischer Eigenschaftszugriff basierend auf einer Zeichenfolge erforderlich ist, z. B.:
var s = "b.b2";
Der direkte Versuche wie r.s oder r[s] würden fehlschlagen. Eine Lösung besteht darin, eine benutzerdefinierte Funktion zu verwenden, die die Zeichenfolgensegmente durchläuft, um die Eigenschaft abzurufen:
function getDescendantProp(obj, desc) { var arr = desc.split("."); while (arr.length && (obj = obj[arr.shift()])); return obj; } console.log(getDescendantProp(r, "b.b2")); // 99 ```` This function effectively simulates the behavior of dot notation by breaking down the string and recursively accessing the corresponding properties. However, it is important to note that this method works best for simple object property scenarios. Arrays can also be accessed using this approach by treating elements as dotted properties:
getDescendantProp({ a: [ 1, 2, 3 ] }, 'a.2'); // 3
Das obige ist der detaillierte Inhalt vonWie greife ich mithilfe einer Zeichenfolge auf verschachtelte JavaScript-Objekteigenschaften zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!