Bagaimana untuk Mencari Objek Khusus dalam Objek JavaScript Bersarang mengikut Label?

Linda Hamilton
Lepaskan: 2024-11-03 21:13:29
asal
379 orang telah melayarinya

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

Mengulangi Objek JavaScript Bersarang: Mengenalpasti Objek mengikut Label

Untuk melintasi objek JavaScript bersarang dan mencari objek dengan label tertentu, ikuti langkah berikut:

Pelaksanaan Menggunakan Rekursi

Untuk mengulangi secara rekursif melalui objek bersarang:

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
Salin selepas log masuk

Pelaksanaan Menggunakan Pendekatan Bukan Rekursif (Kemas Kini 2023)

Untuk pendekatan bukan rekursif :

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]);
            }
        });
    }
};
Salin selepas log masuk

Contoh Objek

Pertimbangkan objek bersarang berikut:

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: []
        }
    ]
};
Salin selepas log masuk

Menggunakan Pengecam

Untuk mendapatkan semula objek dengan label " 4 Wheel Drive" menggunakan pendekatan rekursif, panggil:

iterate(cars);
Salin selepas log masuk
Salin selepas log masuk

Untuk mendapatkan semula objek yang sama menggunakan pendekatan bukan rekursif, panggil:

iterate(cars);
Salin selepas log masuk
Salin selepas log masuk

Ini akan log semua kunci- pasangan nilai dalam objek bersarang, termasuk objek yang diingini.

Atas ialah kandungan terperinci Bagaimana untuk Mencari Objek Khusus dalam Objek JavaScript Bersarang mengikut Label?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan