Heim  >  Artikel  >  Web-Frontend  >  So iterieren Sie rekursiv durch verschachtelte Objekte in JavaScript

So iterieren Sie rekursiv durch verschachtelte Objekte in JavaScript

Patricia Arquette
Patricia ArquetteOriginal
2024-10-22 20:51:03135Durchsuche

How to Recursively Iterate Through Nested Objects in JavaScript

Rekursives Durchlaufen verschachtelter Objekte

Bei dieser Untersuchung sucht der Benutzer nach einem Mechanismus, um rekursiv über ein Objekt, seine untergeordneten Objekte und seine Nachkommen zu iterieren. Darüber hinaus möchten sie den Namen jedes gefundenen Knotens abrufen.

Die for...in-Schleife

Die Lösung liegt in der JavaScript-for...in-Schleife. Diese Schleife durchläuft die aufzählbaren Eigenschaften eines Objekts. Es kann wie folgt verwendet werden:

<code class="javascript">for (var key in foo) {
  if (key === "child") {
    // Perform an action specific to the "child" node
  }
}</code>

Umgang mit geerbten Eigenschaften

Beachten Sie, dass die for...in-Schleife sowohl über die eigenen Eigenschaften des Objekts als auch über geerbte Eigenschaften iterieren kann. Um zu vermeiden, auf geerbte Eigenschaften einzuwirken, verwenden Sie die Methode hasOwnProperty:

<code class="javascript">for (var key in foo) {
  if (!foo.hasOwnProperty(key)) {
    continue; // Skip inherited properties
  }

  if (key === "child") {
    // Perform an action specific to the "child" node
  }
}</code>

Rekursive Iteration

Um die Iteration rekursiv durchzuführen, kann eine rekursive Funktion verwendet werden:

<code class="javascript">function eachRecursive(obj) {
  for (var k in obj) {
    if (typeof obj[k] === "object" && obj[k] !== null) {
      eachRecursive(obj[k]); // Recurse through the nested node
    } else {
      // Perform an action specific to the non-object node
    }
  }
}</code>

Das obige ist der detaillierte Inhalt vonSo iterieren Sie rekursiv durch verschachtelte Objekte in JavaScript. 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