Gelung Rekursif Objek Kompleks dalam JavaScript
Objektif anda adalah untuk melintasi struktur objek bersarang dalam dalam JavaScript, mengakses nama setiap objek dan objeknya anak, cucu dan sebagainya.
The for...in Loop
Satu pendekatan ialah menggunakan for...in loop:
<code class="javascript">for (var key in foo) { if (key === "child") { // Do something with the child } else if (key === "bar") { // Do something with the bar } else if (key === "grand") { // Do something with the grand } }</code>
Mengendalikan Sifat Prototaip
Berhati-hati apabila menggunakan for...in kerana ia juga akan berulang ke atas sifat yang diwarisi daripada prototaip. Untuk mengelakkan ini, gunakan kaedah hasOwnProperty:
<code class="javascript">for (var key in foo) { if (!foo.hasOwnProperty(key)) continue; // Skip inherited properties if (key === "child") { // Do something with the child } // ... }</code>
Fungsi Rekursif
Untuk gelung rekursif, pertimbangkan untuk mentakrifkan fungsi rekursif:
<code class="javascript">function eachRecursive(obj) { for (var k in obj) { if (typeof obj[k] === "object" && obj[k] !== null) { eachRecursive(obj[k]); // Recurse into sub-objects } else { // Do something with key-value pairs } } }</code>
Fungsi ini akan melintasi objek dan menggelung secara rekursif melalui mana-mana objek bersarang.
Penggunaan
Untuk menggunakan penyelesaian ini, cuma hubungi:
<code class="javascript">eachRecursive(foo);</code>
Atas ialah kandungan terperinci Cara Melintasi Struktur Objek Bersarang Dalam dengan Gelung Rekursif dalam JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!