【发布时间】:2017-02-05 12:31:03
【问题描述】:
我有一个需要为其创建树/对象结构的 URI 列表。例如这里是 URIs
/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]];
}
}
【问题讨论】:
-
看起来很简单。你有没有尝试过?
-
@sudomakeinstall2 是的,我做到了。我现在在编辑中提出了我的代码。谢谢
-
但这已经是你想要的了?不过,您可能想跳过第一个元素 (
["", "api", "abc", "xyz", "abc", "cde"])。 -
谢谢你,我想它工作了!! jsfiddle.net/theswcjc
标签: javascript algorithm graph-algorithm