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!