1

我想将 REST 样式的 url 转换为 javascript 文字,如下所示:

从:

var url = "/a/b/c/d";

到:

var obj = {
   a:{
     b:{
       c:{
         d:{}
       }
     }
   }
};

你会怎么做?

4

2 回答 2

3

您可能可以压缩它,但这里有一个解决方案:

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

于 2013-01-10T11:48:26.573 回答
1

我的尝试:

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: {} }}}}
于 2013-01-10T11:59:47.267 回答