Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Membina Pokok Hierarki dengan Cekap daripada Tatasusunan Rata dalam JavaScript?
Membina Pokok Hierarki daripada Tatasusunan Rata dalam JavaScript
Dalam JavaScript, terdapat situasi di mana anda mungkin perlu mengubah tatasusunan rata objek yang mewakili struktur hierarki ke dalam struktur pokok bersarang. Ini boleh timbul apabila bekerja dengan data JSON yang kompleks, seperti dalam contoh yang disediakan.
Untuk membina struktur pokok, kami menggunakan pendekatan berasaskan peta. Kaedah ini cekap dan menyokong berbilang nod akar. Ia memerlukan nod induk mendahului anak mereka dalam tatasusunan rata.
Begini cara kami melaksanakannya dalam JavaScript:
function list_to_tree(list) { var map = {}, node, roots = [], i; for (i = 0; i < list.length; i += 1) { map[list[i].id] = i; // initialize the map list[i].children = []; // initialize the children } for (i = 0; i < list.length; i += 1) { node = list[i]; if (node.parentId !== "0") { // if you have dangling branches check that map[node.parentId] exists list[map[node.parentId]].children.push(node); } else { roots.push(node); } } return roots; } var entries = //Your flat array of entries console.log(list_to_tree(entries));
Penyelesaian ini memulakan peta peta yang menyimpan indeks setiap nod ID, memastikan carian pantas. Ia kemudian melelang melalui senarai dua kali. Dalam pas pertama, ia memulakan sifat anak setiap nod kepada tatasusunan kosong. Dalam laluan kedua, ia membina struktur pokok dengan melampirkan nod pada nod induk masing-masing menggunakan data daripada peta. Jika nod mempunyai parentId "0", ia dianggap sebagai nod akar dan ditambahkan pada tatasusunan akar. Akhir sekali, fungsi list_to_tree mengembalikan tatasusunan nod akar.
Atas ialah kandungan terperinci Bagaimana untuk Membina Pokok Hierarki dengan Cekap daripada Tatasusunan Rata dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!