Rumah > hujung hadapan web > tutorial js > Bagaimanakah Anda Boleh Mengulang Melalui Objek JavaScript Bersarang?

Bagaimanakah Anda Boleh Mengulang Melalui Objek JavaScript Bersarang?

Mary-Kate Olsen
Lepaskan: 2024-11-03 05:24:31
asal
707 orang telah melayarinya

How Can You Iterate Through Nested JavaScript Objects?

Lelaran melalui Objek JavaScript Bersarang

Menyalur melalui objek JavaScript bersarang boleh mencabar, terutamanya apabila anda perlu mendapatkan semula objek tertentu yang dikenal pasti oleh nilai harta tertentu. Pertimbangkan contoh di bawah:

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

Pendekatan Berulang Rekursif:

Untuk melintasi secara mendalam melalui hierarki objek, anda boleh menggunakan pendekatan rekursif:

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

Fungsi ini berulang secara rekursif melalui objek, mencetak pasangan nilai kunci pada setiap tahap. Jika sifat yang ditemui memegang objek lain, fungsi itu memanggil dirinya sendiri dengan objek itu sebagai argumen.

Pendekatan Lelaran Bukan Rekursif:

Pendekatan bukan rekursif alternatif melibatkan menggunakan struktur data tindanan:

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

Fungsi ini berulang melalui hierarki objek dengan menggunakan timbunan. Ia memunculkan elemen terakhir dari timbunan dan melelang melalui sifatnya. Jika sesuatu sifat memegang objek, ia menolak objek itu ke tindanan untuk lelaran selanjutnya.

Atas ialah kandungan terperinci Bagaimanakah Anda Boleh Mengulang Melalui Objek JavaScript Bersarang?. 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