Maison > interface Web > js tutoriel > le corps du texte

Comment parcourir des structures d'objets profondément imbriquées avec une boucle récursive en JavaScript

DDD
Libérer: 2024-10-22 15:04:02
original
965 Les gens l'ont consulté

How to Traverse Deeply Nested Object Structures with Recursive Looping in 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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!