Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Membuat Senarai Harta Hierarki daripada Objek Kompleks Secara Rekursif dalam JavaScript?
Mencipta Senarai Harta Hierarki daripada Objek Kompleks Secara Rekursif
Dalam situasi di mana objek kompleks mengandungi berbilang sub-objek dan sifat dengan jenis data yang berbeza-beza, keperluan timbul untuk membina senarai hierarki hartanah tersebut. Untuk mencapai matlamat ini, pendekatan gelung rekursif adalah penting.
Masalah Diberi:
Sesuatu objek disediakan dengan struktur berikut:
<code class="javascript">var object = { aProperty: { aSetting1: 1, aSetting2: 2, aSetting3: 3, aSetting4: 4, aSetting5: 5 }, bProperty: { bSetting1: { bPropertySubSetting : true }, bSetting2: "bString" }, cProperty: { cSetting: "cString" } };</code>
Output yang Diingini:
Matlamatnya adalah untuk mencipta senarai kunci yang menggambarkan hierarki objek dengan tepat:
aProperty.aSetting1 aProperty.aSetting2 aProperty.aSetting3 aProperty.aSetting4 aProperty.aSetting5 bProperty.bSetting1.bPropertySubSetting bProperty.bSetting2 cProperty.cSetting
Penyelesaian Awal:
<code class="javascript">function iterate(obj) { for (var property in obj) { if (obj.hasOwnProperty(property)) { if (typeof obj[property] == "object") { iterate(obj[property]); } else { console.log(property + " " + obj[property]); } } } }</code>
Fungsi ini menggelung melalui objek dan mencetak kekunci, tetapi ia tidak mengekalkan hierarki.
Penyelesaian Rekursif:
Untuk mengekalkan hierarki, kita boleh mengekalkan rentetan tindanan yang mewakili laluan harta semasa. Apabila sifat primitif ditemui, laluan dicetak. Untuk objek bersarang, timbunan dikemas kini dan rekursi berterusan.
<code class="javascript">function iterate(obj, stack) { for (var property in obj) { if (obj.hasOwnProperty(property)) { if (typeof obj[property] == "object") { iterate(obj[property], stack + '.' + property); } else { console.log(property + " " + obj[property]); $('#output').append($("<div/>").text(stack + '.' + property)) } } } } iterate(object, '');</code>
Nota Tambahan:
Atas ialah kandungan terperinci Bagaimana untuk Membuat Senarai Harta Hierarki daripada Objek Kompleks Secara Rekursif dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!