Javascript 基于JSON对象数组创建嵌套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
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;i