使用递归[JavaScript]创建层次结构
本文向大家介绍使用递归[JavaScript]创建层次结构,包括了使用递归[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": [] } ] }]