Maison  >  Article  >  interface Web  >  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
DDDoriginal
2024-11-02 02:25:31418parcourir

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>

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>

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!

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