Heim  >  Artikel  >  Web-Frontend  >  Wie kann man verschachtelte JavaScript-Objekte rekursiv durchlaufen?

Wie kann man verschachtelte JavaScript-Objekte rekursiv durchlaufen?

DDD
DDDOriginal
2024-11-02 02:25:31420Durchsuche

How to Recursively Iterate Through Nested JavaScript Objects?

Iterieren durch verschachtelte JavaScript-Objekte [Duplikat]

Problem:
Wie man rekursiv durch ein tief verschachteltes JavaScript-Objekt iteriert, um ein abzurufen spezifisches Objekt basierend auf einem bestimmten Bezeichner (z. B. „Label“-Eigenschaft)?

Lösung:

Ursprüngliche Antwort mit Rekursion

Um gründlich zu iterieren ein verschachteltes Objekt mit Rekursion:

<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>

Update 2023: Nicht-rekursiver Ansatz

Für einen nicht-rekursiven Ansatz:

<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>

In beiden Ansätzen der Schlüssel und der Wert jedes verschachtelten Objekts werden in der Konsole protokolliert.

Das obige ist der detaillierte Inhalt vonWie kann man verschachtelte JavaScript-Objekte rekursiv durchlaufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn