Javascript 基于文件路径字符串创建对象

Javascript 基于文件路径字符串创建对象,javascript,Javascript,给定路径“文档/设置/用户” 如何将其制作成嵌套对象 结果 { documents : { settings : { user : {} } } } 我想不出如何引用前面的每一条路径 var dir = {}; var paths = "documents/settings/user".split('/') for (var i = 0; i < paths.length; i++) { var p

给定路径“文档/设置/用户”

如何将其制作成嵌套对象

结果

{
   documents : {
         settings : {
               user : {}
          } 
    }
}
我想不出如何引用前面的每一条路径

var dir = {};

var paths = "documents/settings/user".split('/')
for (var i = 0; i < paths.length; i++) {
  var path = paths[i];
  if(i === 0)
        dir[path] = {};
  //else
    //dir[path[i-?]] = {};
}
var dir={};
var path=“documents/settings/user”.split(“/”)
对于(var i=0;i
对象
通过引用传递。您可以使用此功能并执行类似操作

数组.forEach
var path=“documents/settings/user”.split(“/”)
var r={};
var_tmp=r;
路径。forEach(函数(el){
_tmp[el]={};
_tmp=_tmp[el];
});

console.log(r)
对象
s通过引用传递。您可以使用此功能并执行类似操作

数组.forEach
var path=“documents/settings/user”.split(“/”)
var r={};
var_tmp=r;
路径。forEach(函数(el){
_tmp[el]={};
_tmp=_tmp[el];
});

console.log(r)
使用
.reduce()
实际上很容易做到这一点

var dir={}
var path=“documents/settings/user”.split(“/”)
reduce(函数(dir,path){
return dir[path]={}
},dir)

console.log(dir)
使用
.reduce()
实际上很容易做到这一点

var dir={}
var path=“documents/settings/user”.split(“/”)
reduce(函数(dir,path){
return dir[path]={}
},dir)

console.log(dir)
Wow。。。真的很好。谢谢。哇。。。真的很好。谢谢。非常优雅的解决方案。使用前请检查。您甚至可以添加不兼容的browsers@Rajesh:说得好。需要一个非常旧的JS实现补丁。另一个很好的答案。没关系,我在Node.js上,这是一个非常优雅的解决方案。使用前请检查。您甚至可以添加不兼容的browsers@Rajesh:说得好。需要一个非常旧的JS实现补丁。另一个很好的答案。没关系,我在Node.js上