使用递归[JavaScript]创建层次结构
示例
var directories = [{name: 'users' , parent : null },
{name: 'distalx' , parent : 'users' },
{name: 'guest' , parent : 'users' },
{name: 'shared' , parent : 'users' },
{name: 'documents' , parent : 'distalx' },
{name: 'music' , parent : 'distalx' },
{name: 'desktop' , parent : 'distalx' },
{name: 'javascript' , parent : 'documents' },
{name: 'funjs' , parent : 'documents' },
{name: 'functions' , parent : 'documents' }
]
var sortDirectories= function(directories, parent){
let node = [];
directories
.filter(function(d){ returnd.parent=== parent})
.forEach(function(d){
var cd = d;
cd.child= sortDirectories(directories, d.name);
return node.push(cd);
})
return node;
}
var results = sortDirectories(directories, null);
JSON.stringify(results, null, ' ');
输出
[{"name": "users",
"parent": null,
"child": [
{ "name": "distalx",
"parent": "users",
"child": [
{ "name": "documents",
"parent": "distalx",
"child": [
{ "name": "javascript",
"parent": "documents",
"child": []
},
{ "name": "funjs",
"parent": "documents",
"child": []
},
{ "name": "functions",
"parent": "documents",
"child": []
}
]
},
{ "name": "music",
"parent": "distalx",
"child": []
},
{ "name": "desktop",
"parent": "distalx",
"child": []
}
]
},
{
"name": "guest",
"parent": "users",
"child": []
},
{
"name": "shared",
"parent": "users",
"child": []
}
]
}]
以上是 使用递归[JavaScript]创建层次结构 的全部内容, 来源链接: utcz.com/z/326288.html