Cara Melintasi Struktur Objek Bersarang Dalam dengan Gelung Rekursif dalam JavaScript

DDD
Lepaskan: 2024-10-22 15:04:02
asal
965 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!