我想一個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)...它基本上是一樣的,只是分隔符是不同的。 –