我想一个REST风格的URL转换成文字一个JavaScript,像这样:转换REST URL文本
来自:
var url = "https://stackoverflow.com/a/b/c/d";
到:
var obj = {
a:{
b:{
c:{
d:{}
}
}
}
};
你将如何做这个?
我想一个REST风格的URL转换成文字一个JavaScript,像这样:转换REST URL文本
来自:
var url = "https://stackoverflow.com/a/b/c/d";
到:
var obj = {
a:{
b:{
c:{
d:{}
}
}
}
};
你将如何做这个?
我尝试:
var url = '/a/b/c/d';
var fun = function(a) {
var res = {};
res[a[0]] = a.length == 1 ? {} : fun(a.slice(1));
return res;
};
// obj has what you need
var obj = fun(url.split('/').slice(1));
// OTHER EXAMPLE
var t = ['that', 'is', 'so', 'fun'];
console.log(fun(t));
// above returns object: {that: { is: { so: { fun: {} }}}}
你可能会凝结,但这里有一个解决方案:
var u = '/a/b/c/d';
var t = u.split('/');
var o = {};
for (var i=t.length; i-->1;) {
var temp = o;
o = {};
o[t[i]] = temp;
}
结果是o
。
重复的[使用Javascript:如何给它的字符串名称设置对象的属性(http://stackoverflow.com/questions/13719593/javascript-how-to-set-object -property-given-its-string-name)...它基本上是一样的,只是分隔符是不同的。 –