一個數(shù)組
var nodes = [
{"id":0,"title":"第一級1","parentid":0},
{"id":1,"title":"第二級1","parentid":2},
{"id":2,"title":"第二級2","parentid":2},
{"id":3,"title":"第三級1","parentid":4},
{"id":4,"title":"第三級2","parentid":3}
];
轉(zhuǎn)成的樹結(jié)構(gòu)
var treeData = {
"id": "2",
"title": "第一級1",
"children": [
{
"id": "3",
"title": "第二級1",
"children": [
{
"id": "6",
"title": "第三級2",
"children": [
]
}
]
},
{
"id": "4",
"title": "第二級2",
"children": [
{
"id": "5",
"title": "第三級1",
"children": [
]
}
]
}
]
}
代碼如下:
var nodes = [
{ "id": 2, "title": "第一級1", "parentId": 0 },
{ "id": 3, "title": "第二級1", "parentId": 2 },
{ "id": 4, "title": "第二級2", "parentId": 2 },
{ "id": 5, "title": "第三級1", "parentId": 4 },
{ "id": 6, "title": "第三級2", "parentId": 3 }
];
function convertToTreeData(data, pid) {
const result = [];
let temp = [];
for (let i = 0; i < data.length; i++) {
if (data[i].parentId === pid) {
const obj = { 'title': data[i].title, 'id': data[i].id }
temp = convertToTreeData(data, data[i].id)
if (temp.length > 0) {
obj.children = temp
}
result.push(obj)
}
}
return result;
}
const treeData = convertToTreeData(nodes, 0);
console.log(treeData);
參數(shù)說明請參考原文,地址如下:《原文鏈接》