Maison > interface Web > js tutoriel > Comment parcourir de manière récursive des objets JavaScript imbriqués ?

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

DDD
Libérer: 2024-11-02 02:25:31
original
530 Les gens l'ont consulté

How to Recursively Iterate Through Nested JavaScript Objects?

Itération à travers des objets JavaScript imbriqués [Dupliquer]

Problème :
Comment parcourir de manière récursive un objet JavaScript profondément imbriqué pour récupérer un objet spécifique basé sur un identifiant donné (par exemple, propriété "label") ?

Solution :

Réponse originale avec récursion

Pour parcourir en profondeur un objet imbriqué utilisant la récursion :

<code class="js">const iterate = (obj) => {
  Object.keys(obj).forEach((key) => {
    console.log(`key: ${key}, value: ${obj[key]}`);

    if (typeof obj[key] === 'object' && obj[key] !== null) {
      iterate(obj[key]);
    }
  });
};

console.log(iterate({ ...cars }));</code>
Copier après la connexion

Mise à jour 2023 : Approche non récursive

Pour une approche non récursive :

<code class="js">const iterate = (obj) => {
  const stack = [obj];
  while (stack?.length > 0) {
    const currentObj = stack.pop();
    Object.keys(currentObj).forEach((key) => {
      console.log(`key: ${key}, value: ${currentObj[key]}`);
      if (typeof currentObj[key] === 'object' && currentObj[key] !== null) {
        stack.push(currentObj[key]);
      }
    });
  }
};

console.log(iterate({ ...cars }));</code>
Copier après la connexion

Dans les deux approches, la clé et la valeur de chaque objet imbriqué sont enregistrées dans la console.

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.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal