Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Mencari Objek Khusus dalam Objek JavaScript Bersarang mengikut Label?

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

Linda Hamilton
Linda Hamiltonasal
2024-11-03 21:13:29355semak imbas

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

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

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

Menggunakan Pengecam

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

iterate(cars);

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

iterate(cars);

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!

Kenyataan:
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