js中列表資料轉樹型結構

2021-10-09 09:02:14 字數 738 閱讀 8004

話不多說,直接進入正題~

列表資料中欄位如下:

[

,...

]

我們預期的結果:

[]}

]

先說一下實現的思路:

1、先把列表資料轉成以id為key,節點本身為value的物件temp;

2、定義空列表treedata,然後遍歷temp物件

2-1、如果當前節點不是頂級節點(parentid不為0),那找到以parentid作為key的節點,並把當前節點push到該節點的children中;

2-2、如果當前節點是頂級節點,只需把該節點push到treedata中,當temp遍歷結束後,treedata就是最後的樹型資料。

具體**:

var temp = {};

var treedata = ;

for(var i=0; i這裡特別說一下有個稍微底層一點的東東,也是該方法實現的關鍵所在。。

大家想一想,逐步跟一下這個過程,在遍歷temp時,假如頂級節點1先被push到了treedata中,而後面又有子節點被新增到了節點1中,那麼這個子節點最後能不能被帶入到treedata中的節點1裡呢?

答案是可以的~

因為節點1本身是個object物件,它指向了乙個記憶體位址,而無論後續節點1怎麼改變,被push到treedata中的節點1都會指向同乙個位址,所以節點1被什麼時候push都沒有關係,最後就是完整的資料。

js資料結構 列表List

列表是一組有序的資料。每個列表中的資料項成為元素。js中的列表,元素可以是任意資料型別。列表中可以儲存多少元素沒有限定,實際使用時,由程式記憶體控制元素數量 不包含任何元素的列表稱為空列表。列表中包含的元素格數稱為列表的length 列表擁有描述元素位置的屬性,有前有後 列表的抽象資料型別並未指明列...

java 組裝樹型結構資料

自己開發遇到的後台組裝的樹結構方法,記錄下來 1 首先資料庫為oracle,使用 start with 語句和union 組裝要查詢資料 select from select equip.equip category id as id,equip.equip category name as nam...

資料結構(承) 樹型結構(一)

樹的定義 具有n n 0 個節點的有限非空集合,且有且只有乙個特定的節點成為根。節點 節點表示樹中的元素,包括資料項及若干指向子樹的分支。節點的度 節點所擁有的子樹的個數稱為該節點的度 degree 樹的度 樹中各節點度的最大值成為樹的度。葉節點 度為0的節點稱為葉節點。分支節點 度不為0的節點成為...