Heim > Web-Frontend > js-Tutorial > Hauptteil

Wie durchläuft man verschachtelte JavaScript-Objekte: rekursiv oder nicht rekursiv?

Susan Sarandon
Freigeben: 2024-11-02 05:14:02
Original
824 Leute haben es durchsucht

How to Traverse Nested JavaScript Objects: Recursive vs. Non-Recursive?

Navigieren in verschachtelten JavaScript-Objekten: Ein umfassender Leitfaden

Das Durchlaufen komplexer, verschachtelter JavaScript-Objekte kann eine Herausforderung darstellen, insbesondere wenn Sie etwas abrufen müssen spezifische verschachtelte Objekte basierend auf einer bereitgestellten Zeichenfolgenkennung. In diesem Artikel führen wir Sie durch einen umfassenden Ansatz zum effektiven Durchqueren verschachtelter Objekte.

Um die Herausforderung zu veranschaulichen, betrachten wir die folgende Struktur verschachtelter Objekte:

var cars = {
  label: 'Autos',
  subs: [
    {
      label: 'SUVs',
      subs: []
    },
    {
      label: 'Trucks',
      subs: [
        {
          label: '2 Wheel Drive',
          subs: []
        },
        {
          label: '4 Wheel Drive',
          subs: [
            {
              label: 'Ford',
              subs: []
            },
            {
              label: 'Chevrolet',
              subs: []
            }
          ]
        }
      ]
    },
    {
      label: 'Sedan',
      subs: []
    }
  ]
};
Nach dem Login kopieren

Nicht-rekursiver Ansatz

(Eingeführt im Jahr 2023)

Für einen nicht-rekursiven Ansatz können wir einen Stapel verwenden, um das Objekt zu durchlaufen:

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]);
      }
    });
  }
};
Nach dem Login kopieren

Rekursiver Ansatz

Für einen rekursiven Ansatz, der eine tiefe Iteration ermöglicht, können wir Object.keys() nutzen:

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]);
    }
  });
};
Nach dem Login kopieren

Beide Ansätze bieten effiziente Mittel zum Durchqueren von verschachteltem JavaScript Objekte. Ob Sie sich für den nicht-rekursiven oder den rekursiven Ansatz entscheiden, hängt von Ihren spezifischen Anforderungen und Vorlieben ab.

Das obige ist der detaillierte Inhalt vonWie durchläuft man verschachtelte JavaScript-Objekte: rekursiv oder nicht rekursiv?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!