Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Mengubah Susunan JSON Rata dengan Cekap menjadi Struktur Pokok Hierarki dalam JavaScript?

Bagaimana untuk Mengubah Susunan JSON Rata dengan Cekap menjadi Struktur Pokok Hierarki dalam JavaScript?

DDD
Lepaskan: 2024-12-14 18:42:11
asal
343 orang telah melayarinya

How to Efficiently Transform a Flat JSON Array into a Hierarchical Tree Structure in JavaScript?

Membina Struktur Data Pokok Hierarki daripada Tatasusunan JSON Rata dalam JavaScript

Dalam senario yang melibatkan data JSON yang kompleks, menjadi penting untuk menyusunnya secara hierarki, terutamanya untuk mewakili struktur seperti pokok. Artikel ini membincangkan cara mengubah tatasusunan JSON rata menjadi pepohon hierarki dalam JavaScript.

Masalah

Diberi tatasusunan JSON rata yang terdiri daripada objek dengan tiga sifat utama:

  • id: Pengecam unik untuk setiap nod
  • parentId: Pengecam induk nod (0 untuk nod akar)
  • tahap: Kedalaman nod dalam pepohon

Tugasnya adalah untuk menukar tatasusunan rata ini kepada struktur pokok hierarki, di mana setiap nod induk merangkum anaknya nod.

Penyelesaian

Pendekatan yang cekap menggunakan algoritma carian peta untuk membina pepohon. Algoritma berulang melalui tatasusunan rata dua kali:

  1. Pemula: Cipta peta di mana setiap id nod dikaitkan dengan indeksnya dalam tatasusunan. Mulakan tatasusunan kanak-kanak untuk setiap nod.
  2. Pembinaan Pokok: Lelaran melalui tatasusunan sekali lagi dan petakan parentId setiap nod ke nod induk yang sepadan. Jika nod induk tidak ditemui, nod semasa menjadi nod akar.

Pelaksanaan

Coretan kod JavaScript berikut mempamerkan pelaksanaan pepohon- bangunan algoritma:

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") {
      // handle dangling branches here
      list[map[node.parentId]].children.push(node);
    } else {
      roots.push(node);
    }
  }
  return roots;
}
Salin selepas log masuk

Penggunaan

Untuk menukar tatasusunan JSON rata kepada struktur pokok hierarki:

var entries = [
    // ... entries as in the provided example
];

var tree = list_to_tree(entries);

// The resulting `tree` is the hierarchical data structure
Salin selepas log masuk

Kesimpulan

Algoritma yang dibentangkan dalam artikel ini dengan berkesan menukar tatasusunan JSON rata kepada struktur pokok hierarki dalam JavaScript. Ia bergantung pada pendekatan carian peta untuk pembinaan yang cekap, menjadikannya sesuai untuk mengendalikan set data yang kompleks.

Atas ialah kandungan terperinci Bagaimana untuk Mengubah Susunan JSON Rata dengan Cekap menjadi Struktur Pokok Hierarki 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan