2016-12-01 132 views

回答

5

var sample = "/foo/1/bar/2/cat/bob".substring(1); 
 
var finalObj = {}; 
 

 
var arr = sample.split('/'); 
 

 
for(var i=0;i<arr.length;i=i+2){ 
 
    finalObj[arr[i]] = arr[i+1]; 
 
} 
 

 
console.log(finalObj);

+1

正确的问题问。 – David

2

const str = '/foo/1/bar/2/cat/bob/test/' 
 

 
const parts = str.split('/') 
 
    .filter(val => val !== '') 
 

 
const obj = {} 
 

 
for (let ii = 0; ii < parts.length; ii+=2) { 
 
    const key = parts[ii] 
 
    const value = parts[ii+1] 
 
    obj[key] = !isNaN(value) ? Number(value) : value 
 
} 
 

 
console.log(obj)

+0

非常优雅,@ synthet1c。 – Rounin

+2

什么发生在字符串中的最初'/'? –

+0

是真的。我会更新 – synthet1c

0

只是为了好玩,

let str = "/foo/1/bar/2/cat/bob", 
    arr = str.split("/"), 
    obj = {}; 
arr.shift(); 
while (arr.length) obj[arr.shift()] = arr.shift(); 
相关问题