以以下字符串:
/foo/1/bar/2/cat/bob
我需要将其解析为最终被变成的对象或数组:
foo = 1
bar = 2
cat = bob
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);
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)
正则表达式是各种解析的选择工具:
str = '/foo/1/bar/2/cat/bob'
obj = {};
str.replace(/(w+)/(w+)/g, (...m) => obj[m[1]] = m[2]);
console.log(obj);
只是为了乐趣,
let str = "/foo/1/bar/2/cat/bob",
arr = str.split("/"),
obj = {};
arr.shift();
while (arr.length) obj[arr.shift()] = arr.shift();