Heim  >  Artikel  >  Web-Frontend  >  Wie durchläuft man verschachtelte JavaScript-Objekte: rekursiv oder nicht rekursiv?

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

Susan Sarandon
Susan SarandonOriginal
2024-11-02 05:14:02825Durchsuche

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: []
    }
  ]
};

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]);
      }
    });
  }
};

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]);
    }
  });
};

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!

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