Heim > Web-Frontend > js-Tutorial > Wie greife ich mithilfe einer Zeichenfolge auf verschachtelte JavaScript-Objekteigenschaften zu?

Wie greife ich mithilfe einer Zeichenfolge auf verschachtelte JavaScript-Objekteigenschaften zu?

DDD
Freigeben: 2024-11-20 15:35:16
Original
642 Leute haben es durchsucht

How to Access Nested JavaScript Object Properties Using a String?

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 } };
Nach dem Login kopieren

Um auf den Wert von b2 zuzugreifen, kann man die Standardpunktnotation verwenden:

r.b.b2
Nach dem Login kopieren

Wenn jedoch ein dynamischer Eigenschaftszugriff basierend auf einer Zeichenfolge erforderlich ist, z. B.:

var s = "b.b2";
Nach dem Login kopieren

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:
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage