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

Wie kann man verschachtelte JavaScript-Objekte rekursiv durchlaufen?

DDD
Freigeben: 2024-11-02 02:25:31
Original
522 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage