Heim  >  Artikel  >  Web-Frontend  >  Wie finde ich ein bestimmtes Objekt in einem verschachtelten JavaScript-Objekt anhand der Bezeichnung?

Wie finde ich ein bestimmtes Objekt in einem verschachtelten JavaScript-Objekt anhand der Bezeichnung?

Linda Hamilton
Linda HamiltonOriginal
2024-11-03 21:13:29354Durchsuche

How to Find a Specific Object within  a Nested JavaScript Object by Label?

Iterieren verschachtelter JavaScript-Objekte: Identifizieren von Objekten anhand der Beschriftung

Um ein verschachteltes JavaScript-Objekt zu durchlaufen und ein Objekt mit einer bestimmten Beschriftung zu finden, führen Sie die folgenden Schritte aus:

Implementierung mit Rekursion

Um das verschachtelte Objekt rekursiv zu durchlaufen:

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])
        }
    })
}
iterate(obj); // obj is the main object to be traversed

Implementierung mit nicht-rekursivem Ansatz (Update 2023)

Für einen nicht-rekursiven Ansatz :

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

Beispielobjekt

Betrachten Sie das folgende verschachtelte Objekt:

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

Verwenden des Bezeichners

Um das Objekt mit der Bezeichnung " abzurufen 4 Wheel Drive“ mit dem rekursiven Ansatz aufrufen, rufen Sie auf:

iterate(cars);

Um dasselbe Objekt mit dem nicht-rekursiven Ansatz abzurufen, rufen Sie auf:

iterate(cars);

Dadurch werden alle Schlüssel- Wertepaare im verschachtelten Objekt, einschließlich des gewünschten Objekts.

Das obige ist der detaillierte Inhalt vonWie finde ich ein bestimmtes Objekt in einem verschachtelten JavaScript-Objekt anhand der Bezeichnung?. 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