Heim >Web-Frontend >js-Tutorial >Wie durchläuft man ein Objekt (Baum) rekursiv in JavaScript oder jQuery?

Wie durchläuft man ein Objekt (Baum) rekursiv in JavaScript oder jQuery?

Linda Hamilton
Linda HamiltonOriginal
2024-10-22 20:56:10378Durchsuche

How to Traverse an Object (Tree) Recursively in JavaScript or jQuery?

Rekursives Durchlaufen eines Objekts (Baums)

In JavaScript oder jQuery kann das Durchlaufen eines Objekts und seiner Nachkommen mithilfe des for erreicht werden. ..in-Schleife:

<code class="javascript">for (var key in foo) {
  if (key == "child") {
    // Do something with child
  }
  if (key == "bar") {
    // Do something with bar
  }
  if (key == "grand") {
    // Do something with grand
  }
}</code>

Beachten Sie, dass die for...in-Schleife alle aufzählbaren Eigenschaften durchläuft, einschließlich der vom Prototyp des Objekts geerbten. Um zu vermeiden, dass auf geerbte Eigenschaften eingegriffen wird, verwenden Sie hasOwnProperty:

<code class="javascript">for (var key in foo) {
  if (!foo.hasOwnProperty(key)) continue;
  if (key == "child") {
    // Do something with child
  }
}</code>

Rekursive Schleife

Um eine rekursive Schleife durchzuführen, erstellen Sie eine rekursive Funktion:

<code class="javascript">function eachRecursive(obj) {
  for (var key in obj) {
    if (typeof obj[key] === "object" &amp;&amp; obj[key] !== null) {
      eachRecursive(obj[key]);
    } else {
      // Do something with primitive value
    }
  }
}</code>

Diese Funktion kann sowohl Objekte als auch Arrays verarbeiten und ihre verschachtelte Struktur rekursiv durchlaufen.

Das obige ist der detaillierte Inhalt vonWie durchläuft man ein Objekt (Baum) rekursiv in JavaScript oder jQuery?. 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