Membalas melalui Objek JavaScript Bersarang
Membalas melalui objek JavaScript bersarang boleh menjadi mencabar, terutamanya apabila anda perlu mendapatkan semula objek tertentu berdasarkan harta nilai. Mari kita pertimbangkan contoh berikut:
<code class="javascript">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: [] } ] };</code>
Jika kita ingin mendapatkan semula objek untuk jenama "Ford", kita boleh menggunakan pendekatan rekursif:
<code class="javascript">const iterate = (obj, identifier) => { for (let key in obj) { if (obj[key]['label'] === identifier) { return obj[key]; } if (typeof obj[key] === 'object' && obj[key] !== null) { const result = iterate(obj[key], identifier); if (result) { return result; } } } return null; }; const fordObject = iterate(cars, 'Ford');</code>
Dalam contoh ini, fungsi iterate mengambil dua parameter: objek untuk dicari dan rentetan pengecam. Ia berulang melalui sifat objek, menyemak sama ada sifat label sepadan dengan pengecam. Jika tidak, ia menyemak sama ada harta itu adalah objek lain dan meneruskan lelaran. Jika tiada objek sepadan ditemui, ia akan mengembalikan null.
Atas ialah kandungan terperinci Bagaimana untuk Cekap Mencari Objek Khusus dalam Objek JavaScript Bersarang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!