Rumah > hujung hadapan web > tutorial js > Bagaimanakah Saya Boleh Melintasi Pokok Objek JSON dengan Cekap dalam JavaScript Tulen?

Bagaimanakah Saya Boleh Melintasi Pokok Objek JSON dengan Cekap dalam JavaScript Tulen?

Barbara Streisand
Lepaskan: 2024-11-30 17:34:15
asal
199 orang telah melayarinya

How Can I Efficiently Traverse a JSON Object Tree in Pure JavaScript?

Perjalanan Pokok Objek JSON dalam JavaScript tanpa Pustaka Luaran

Melintasi pepohon objek JSON boleh menjadi tugas biasa apabila bekerja dengan struktur data yang kompleks . Walaupun JavaScript menyediakan perpustakaan fungsi yang kaya untuk bekerja dengan objek, tiada perpustakaan khusus untuk melintasi pokok objek. Ini mungkin kelihatan seperti tugas yang mudah, tetapi ia sering membawa kepada mencipta semula roda.

Tidak seperti XML, yang menawarkan pelbagai pendekatan berasaskan DOM untuk melintasi pokok, JavaScript tidak mempunyai mekanisme yang serupa untuk objek JSON. Artikel ini membentangkan penyelesaian yang cekap dan mudah untuk melintasi pokok objek JSON menggunakan fungsi JavaScript tulen.

Fungsi Traversal Rekursif Tersuai

Penyelesaian melibatkan penciptaan fungsi rekursif tersuai yang merentasi pokok objek. Fungsi traverse() mengambil dua parameter:

  • o: Objek JSON untuk dilalui
  • func: Fungsi panggil balik yang memproses setiap nod dalam pepohon

Fungsi ini berulang melalui setiap sifat dan nilainya dalam objek. Untuk setiap pasangan nilai harta, ia memanggil fungsi panggil balik untuk memproses data. Jika nilai adalah objek lain dan bukan nol, fungsi itu secara rekursif memanggil dirinya sendiri untuk melintasi objek kanak-kanak.

Contoh Penggunaan

Untuk menunjukkan penggunaan, mari kita pertimbangkan perkara berikut Objek JSON:

var o = { 
    foo:"bar",
    arr:[1,2,3],
    subo: {
        foo2:"bar2"
    }
};
Salin selepas log masuk

Kami mentakrifkan fungsi process() untuk log kunci dan nilai setiap nod:

function process(key,value) {
    console.log(key + " : "+value);
}
Salin selepas log masuk

Sekarang, kita boleh melintasi pokok objek menggunakan traverse():

traverse(o,process);
Salin selepas log masuk

Ini akan mengeluarkan yang berikut:

foo : bar
arr : 1
arr : 2
arr : 3
subo : [object Object]
foo2 : bar2
Salin selepas log masuk

Perhatikan bahawa output termasuk kunci subobjek tetapi bukan sifatnya. Ini kerana fungsi traverse() tidak melintasi subobjek secara rekursif. Untuk mencapai traversal yang mendalam, seseorang perlu mengubah suai kod dengan sewajarnya.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melintasi Pokok Objek JSON dengan Cekap dalam JavaScript Tulen?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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