Rumah  >  Artikel  >  hujung hadapan web  >  Cara Melintasi Struktur Objek Bersarang Dalam dengan Gelung Rekursif dalam JavaScript

Cara Melintasi Struktur Objek Bersarang Dalam dengan Gelung Rekursif dalam JavaScript

DDD
DDDasal
2024-10-22 15:04:02966semak imbas

How to Traverse Deeply Nested Object Structures with Recursive Looping in JavaScript

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!

Kenyataan:
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