Rumah > Artikel > hujung hadapan web > Cara Melintasi Objek JavaScript Bersarang: Rekursif vs. Bukan Rekursif?
Menavigasi Objek JavaScript Bersarang: Panduan Komprehensif
Lelaran melalui objek JavaScript yang kompleks dan bersarang boleh menimbulkan cabaran, terutamanya apabila anda perlu mendapatkan semula objek bersarang tertentu berdasarkan pengecam rentetan yang disediakan. Dalam artikel ini, kami akan membimbing anda melalui pendekatan menyeluruh untuk melintasi objek bersarang dengan berkesan.
Untuk menggambarkan cabaran, mari pertimbangkan struktur 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: [] } ] };
Pendekatan Bukan Rekursif
(Diperkenalkan pada 2023)
Untuk pendekatan bukan rekursif, kita boleh menggunakan tindanan untuk melintasi objek:
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]); } }); } };
Pendekatan Rekursif
Untuk pendekatan rekursif yang menyediakan lelaran mendalam, kami boleh memanfaatkan Object.keys():
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]); } }); };
Kedua-dua pendekatan menyediakan cara yang cekap untuk melintasi JavaScript bersarang objek. Sama ada anda memilih pendekatan bukan rekursif atau rekursif bergantung pada keperluan dan pilihan khusus anda.
Atas ialah kandungan terperinci Cara Melintasi Objek JavaScript Bersarang: Rekursif vs. Bukan Rekursif?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!