Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Membina Pokok Hierarki dengan Cekap daripada Tatasusunan Rata dalam JavaScript?

Bagaimana untuk Membina Pokok Hierarki dengan Cekap daripada Tatasusunan Rata dalam JavaScript?

Patricia Arquette
Lepaskan: 2024-12-10 15:27:14
asal
810 orang telah melayarinya

How to Efficiently Build a Hierarchical Tree from a Flat Array in 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));
Salin selepas log masuk

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!

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