Javascript 基于JSON对象数组创建嵌套JSON

Javascript 基于JSON对象数组创建嵌套JSON,javascript,json,Javascript,Json,我有一个JSON对象数组,类似于: var fileArray = [ { name: "file1", path: "/main/file1" }, { name: "file2", path: "/main/folder2/file2" }, { name: "file4", path: "/main/folder3/file4" }, { name: "file5", path: "/main/file5" }, { name: "file6", path: "/mai

我有一个JSON对象数组,类似于:

var fileArray = [
  { name: "file1", path: "/main/file1" },
  { name: "file2", path: "/main/folder2/file2" },
  { name: "file4", path: "/main/folder3/file4" },
  { name: "file5", path: "/main/file5" },
  { name: "file6", path: "/main/file6" }
];  
我希望它最终看起来是这样的:

fileTree = [
  {
    "name": "file1",
    "children": []
  },
  {
    "name": "folder1"
    "children": [
      {
        "name": "folder2",
        "children": [
          {
            "name": "file2",
            "children": []
          }
        ]
      },
      {
        "name": "folder3",
        "children": [
          {
            "name": "file4",
            "children": []
                }
              ]
            }
          ]
        },
  {
    "name": "file5",
    "children": []
        },
  {
    "name": "file6",
    "children": []
  }
];

我尝试了中提到的解决方案,但对第一个答案的第一个评论正是我遇到的问题。非常感谢您的帮助。

您可以使用嵌套哈希表作为对相同目录的引用,并以相同的方式构建结果集

var fileArray=[{name:file1,path:/main/file1},{name:file2,path:/main/folder2/file2},{name:file4,path:/main/folder3/file4},{name:file5,path:/main/file5},{name:file6,path:/main/file6}], 温度=[], 文件树; fileArray.forEachfunction哈希{ 返回函数a{ a、 路径。替换“/”,.split“/”。还原函数r,k{ if!r[k]{ r[k]={{}:[]}; r、 _u.push{name:k,children:r[k]。}; } 返回r[k]; },散列; }; }{{{:temp}; fileTree=temp[0]。子级; console.logfileTree;
.as console wrapper{max height:100%!important;top:0;}这不会给出您想要的确切结果,但我认为它是可用的:

var fileArray=[ {name:file1,路径:/main/file1}, {名称:file2,路径:/main/folder2/file2}, {name:file4,path:/main/folder3/file4}, {名称:file5,路径:/main/file5}, {名称:file6,路径:/main/file6} ]; var tree=fileArray.reducefunction b,e{ var pathbits=e.path.split/; var r=b; 对于变量i=1;ilogtree;folder1从何而来,为什么一个文件会有一个children属性,尽管是空的。我有一个JSON对象数组,如果看起来你没有,为什么你不包括你在这个问题中尝试过的链接片段,并演示不起作用的问题/边缘情况?当然,有人会为您编写代码,但我不确定您是否会从中学到很多…James,文件夹名称仅供参考。George,我的意思是我有一个JSON对象数组。我是新来的,所以请原谅我的错误。谢谢你的帮助,詹姆斯,但是我以后需要使用结果来呈现一个html页面,我使用了一个库,这就是为什么我需要结果与我提到的一模一样。非常感谢Nina!这为我做了一个小小的修改。也许你考虑只使用路径的目录而不是文件本身,然后你可以通过引用……hash.u.push{name:a.name};我正在使用此结果显示上载文件夹的文件结构,因此我需要文件和文件夹的路径。@raviabhiram,您可以在此处查看: