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
Susan SarandonOriginal
2024-11-30 02:19:12508Durchsuche

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 } };

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!

Stellungnahme:
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
Vorheriger Artikel:Schlüsselwort „neu“.Nächster Artikel:Schlüsselwort „neu“.