Heim  >  Artikel  >  Web-Frontend  >  Wie kann ich über einen String-Pfad auf tief verschachtelte Objektwerte zugreifen?

Wie kann ich über einen String-Pfad auf tief verschachtelte Objektwerte zugreifen?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-24 19:24:02411Durchsuche

How can I Access Deeply Nested Object Values Using a String Path?

Erfassen tief verschachtelter Objektwerte über einen String-Pfad

Der Zugriff auf tief verschachtelte Objekteigenschaften kann umständlich sein, insbesondere wenn String-Pfade zum Durchlaufen des Objekts verwendet werden. Diese Frage sucht nach einer Lösung zum Abrufen von Werten aus Objekten basierend auf einem bereitgestellten Zeichenfolgenpfad.

Vorgeschlagene Lösung

Der vorgeschlagene Ansatz verwendet die folgende Funktion, deep_value, die iterativ durch die in angegebenen Objekteigenschaften navigiert Pfadzeichenfolge:

<code class="javascript">var deep_value = function(obj, path) {
  for (var i = 0, path = path.split('.'), len = path.length; i < len; i++) {
    obj = obj[path[i]];
  }
  return obj;
};</code>

Aufschlüsselung

  • Die Operation split('.') wandelt den Zeichenfolgenpfad in ein Array von Eigenschaftsnamen um.
  • Eine Schleife ist Wird verwendet, um das Objekt zu durchlaufen und nacheinander auf jede Eigenschaft zuzugreifen.
  • Die letzte Iteration gibt den endgültigen verschachtelten Wert zurück.

Beispiel

Betrachten Sie das folgende Objekt:

var obj = {
  foo: { bar: 'baz' }
};

Um über den String-Pfad „foo.bar“ auf den Wert von obj.foo.bar zuzugreifen, kann die Funktion „deep_value“ wie folgt aufgerufen werden:

deep_value(obj, "foo.bar"); // returns "baz"

Das obige ist der detaillierte Inhalt vonWie kann ich über einen String-Pfad auf tief verschachtelte Objektwerte zugreifen?. 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