Heim >Web-Frontend >js-Tutorial >So durchlaufen Sie tief verschachtelte Objektstrukturen mit rekursiver Schleife in JavaScript
Rekursive Schleife komplexer Objekte in JavaScript
Ihr Ziel ist es, eine tief verschachtelte Objektstruktur in JavaScript zu durchlaufen und dabei auf den Namen und die Eigenschaften jedes Objekts zuzugreifen Kinder, Enkelkinder usw.
Die for...in-Schleife
Ein Ansatz besteht darin, die for...in-Schleife zu verwenden:
<code class="javascript">for (var key in foo) { if (key === "child") { // Do something with the child } else if (key === "bar") { // Do something with the bar } else if (key === "grand") { // Do something with the grand } }</code>
Umgang mit Prototyp-Eigenschaften
Seien Sie vorsichtig bei der Verwendung von for...in, da dadurch auch vom Prototyp geerbte Eigenschaften iteriert werden. Um dies zu vermeiden, verwenden Sie die Methode hasOwnProperty:
<code class="javascript">for (var key in foo) { if (!foo.hasOwnProperty(key)) continue; // Skip inherited properties if (key === "child") { // Do something with the child } // ... }</code>
Rekursive Funktionen
Für rekursive Schleifen sollten Sie erwägen, eine rekursive Funktion zu definieren:
<code class="javascript">function eachRecursive(obj) { for (var k in obj) { if (typeof obj[k] === "object" && obj[k] !== null) { eachRecursive(obj[k]); // Recurse into sub-objects } else { // Do something with key-value pairs } } }</code>
Diese Funktion durchläuft das Objekt und durchläuft rekursiv alle verschachtelten Objekte.
Verwendung
Um diese Lösungen anzuwenden, rufen Sie einfach Folgendes auf:
<code class="javascript">eachRecursive(foo);</code>
Das obige ist der detaillierte Inhalt vonSo durchlaufen Sie tief verschachtelte Objektstrukturen mit rekursiver Schleife in JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!