Maison  >  Article  >  interface Web  >  Comment parcourir de manière récursive des objets imbriqués en JavaScript

Comment parcourir de manière récursive des objets imbriqués en JavaScript

Patricia Arquette
Patricia Arquetteoriginal
2024-10-22 20:51:03215parcourir

How to Recursively Iterate Through Nested Objects in JavaScript

Itération récursive sur des objets imbriqués

Dans cette enquête, l'utilisateur recherche un mécanisme pour parcourir un objet, ses enfants et ses descendants de manière récursive. De plus, ils souhaitent récupérer le nom de chaque nœud rencontré.

La boucle for...in

La solution réside dans la boucle JavaScript for...in. Cette boucle parcourt les propriétés énumérables d'un objet. Il peut être utilisé comme suit :

<code class="javascript">for (var key in foo) {
  if (key === "child") {
    // Perform an action specific to the "child" node
  }
}</code>

Gestion des propriétés héritées

Notez que la boucle for...in peut parcourir à la fois les propriétés propres de l'objet et les propriétés héritées. Pour éviter d'agir sur les propriétés héritées, utilisez la méthode hasOwnProperty :

<code class="javascript">for (var key in foo) {
  if (!foo.hasOwnProperty(key)) {
    continue; // Skip inherited properties
  }

  if (key === "child") {
    // Perform an action specific to the "child" node
  }
}</code>

Itération récursive

Pour effectuer l'itération de manière récursive, une fonction récursive peut être utilisée :

<code class="javascript">function eachRecursive(obj) {
  for (var k in obj) {
    if (typeof obj[k] === "object" && obj[k] !== null) {
      eachRecursive(obj[k]); // Recurse through the nested node
    } else {
      // Perform an action specific to the non-object node
    }
  }
}</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!

Déclaration:
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