樹形結構的資料與一維陣列資料的相互轉換

2022-02-25 09:32:20 字數 686 閱讀 4360

在我們做專案時,我們有時需要樹形結構的資料進行資料的樹形層級展示,或者需要把返回的資料結構資料進行拆解成單層陣列形式。下面我們就來總結下這兩種方法。

陣列轉樹形結構:

var data = [,,

,,,,

,];// 陣列轉樹形結構資料(原理即為通過設定id為key值,再通過pid去找這個key是否一樣,一樣則為這資料的子級資料)

function arraytojson(treearray);

for (var i=0, l=treearray.length; ivar jsonarr = [, , , ]

}, ]

}, , ]

}, , ]

}]// 樹形結構資料轉單層陣列形式

function jsontoarray(nodes)

} return r;

}為了不破壞原資料,我們需要對操作的資料進行深拷貝:

// 深拷貝

function deepcopy(obj)

return object

}// 深度複製物件

if(object.prototype.tostring.call(obj)=="[object object]");

for(var p in obj)

return object}}

對兩個方法的呼叫與驗證:

樹形結構的資料與一維陣列資料的相互轉換

陣列轉樹形結構 var data 陣列轉樹形結構資料 原理即為通過設定id為key值,再通過pid去找這個key是否一樣,一樣則為這資料的子級資料 function arraytojson treearray for var i 0,l treearray.length i console.log ...

把有層級的一維陣列改為樹形結構

朋友問的問題,我試著寫了一下。用了兩層遞迴,感覺很麻煩。doctype html html lang en head meta charset utf 8 title document title head body body html script type text j ascript let ...

JavaScript之樹形結構的資料 一

在前端js程式設計中,經常需要在前端頁面顯示組織機構之類的樹形結構資料,下面的 可以組成乙個樹形結構的資料。現成的樹形結構資料如下 const data const device const alarminput function tree parent,children o.key parent ...