Heim >Web-Frontend >js-Tutorial >Wie können Sie verschachtelte JavaScript-Objekte durchlaufen?
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!