Heim >Web-Frontend >js-Tutorial >Wie können Sie verschachtelte JavaScript-Objekte durchlaufen?

Wie können Sie verschachtelte JavaScript-Objekte durchlaufen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-03 05:24:31728Durchsuche

How Can You Iterate Through Nested JavaScript Objects?

Iterieren durch verschachtelte JavaScript-Objekte

Das Iterieren durch verschachtelte JavaScript-Objekte kann eine Herausforderung sein, insbesondere wenn Sie ein bestimmtes, durch a identifiziertes Objekt abrufen müssen spezifischer Immobilienwert. Betrachten Sie das folgende Beispiel:

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

Rekursiver iterativer Ansatz:

Um die Objekthierarchie tief zu durchqueren, können Sie einen rekursiven Ansatz verwenden:

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

Diese Funktion durchläuft das Objekt rekursiv und gibt die Schlüssel-Wert-Paare auf jeder Ebene aus. Wenn eine gefundene Eigenschaft ein anderes Objekt enthält, ruft sich die Funktion selbst mit diesem Objekt als Argument auf.

Nicht-rekursiver iterativer Ansatz:

Ein alternativer nicht-rekursiver Ansatz beinhaltet unter Verwendung einer Stapeldatenstruktur:

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

Diese Funktion iteriert durch die Objekthierarchie unter Verwendung eines Stapels. Es entfernt das letzte Element vom Stapel und durchläuft seine Eigenschaften. Wenn eine Eigenschaft ein Objekt enthält, wird dieses Objekt zur weiteren Iteration auf den Stapel verschoben.

Das obige ist der detaillierte Inhalt vonWie können Sie verschachtelte JavaScript-Objekte 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