Maison >interface Web >js tutoriel >Comment parcourir des structures d'objets profondément imbriquées avec une boucle récursive en JavaScript
Bouclage récursif d'objets complexes en JavaScript
Votre objectif est de parcourir une structure d'objet profondément imbriquée en JavaScript, en accédant au nom de chaque objet et à son enfants, petits-enfants, etc.
La boucle for...in
Une approche consiste à utiliser la boucle for...in :
<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>
Gestion des propriétés du prototype
Soyez prudent lorsque vous utilisez for...in car il parcourra également les propriétés héritées du prototype. Pour éviter cela, utilisez la méthode 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>
Fonctions récursives
Pour une boucle récursive, pensez à définir une fonction récursive :
<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>
Cette fonction traversera l'objet et parcourra de manière récursive tous les objets imbriqués.
Utilisation
Pour utiliser ces solutions, appelez simplement :
<code class="javascript">eachRecursive(foo);</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!