我有一个URI列表,我需要为其创建一个树/对象结构。例如,这里是URI
/api/abc/xyz/abc/cde
/api/xyz/abc/d3/d2
/api/abc/cde/d3/d2
/api/abc/cde/d1/d2
结果树应如下所示
{
api: {
abc: {
xyz: {
abc: {
cde: {}
}
},
cde: {
d3: {
d2: {}
},
d1: {
d2: {}
}
}
},
xyz: {
abc: {
d3: {
d2: {}
}
}
}
}
}
我需要用javascript做这件事。我可以使用任何算法来构建它吗?我从下面的代码开始,但我有点失落!!
paths=['/api/abc/xyz/abc/cde',
'/api/xyz/abc/d3/d2',
'/api/abc/cde/d3/d2',
'/api/abc/cde/d1/d2' ];
var apiResources = {};
for(var i in paths) {
var path = paths[i];
//split by '/'
var parts = path.split("/");
var node = apiResources;
for (var i = 0; i < parts.length; i++) {
if (!node[parts[i]]) {
node[parts[i]] = {};
}
node = node[parts[i]];
}
}
答案 0 :(得分:0)
var string="a/b/c";
keys=string.split("/");
var obj={};
var index=obj;
for(let i=0;i<keys.length;i++){
index=index[keys[i]]={};
}
Obj现在应该包含字符串作为对象。你可以用多个atrings重复这个