Heim > Web-Frontend > js-Tutorial > Wie greife ich mithilfe von Punktnotationszeichenfolgen in JavaScript auf Eigenschaften verschachtelter Objekte zu?

Wie greife ich mithilfe von Punktnotationszeichenfolgen in JavaScript auf Eigenschaften verschachtelter Objekte zu?

Susan Sarandon
Freigeben: 2024-11-30 02:19:12
Original
577 Leute haben es durchsucht

How to Access Nested Object Properties Using Dot Notation Strings in JavaScript?

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

Um auf den Wert von b2 zuzugreifen, können Sie normalerweise verwenden :

r.b.b2
r['b']['b2']
Nach dem Login kopieren

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

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

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!

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage