使用递归[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

回到顶部