假设来一个地址:
http://www.baidu.com?id=1&&value=haha&&aaa=1
最后想得到的效果是这样的:{ id:1, value:haha, aaa:1 }
可以定义一个函数
const search = 'http://www.baidu.com?id=1&&value=haha&&aaa=11'
function fn(str){
if(!str) return ;//验证是否是字符串
str = str.substr(str.indexOf('?')+1);//截取?之后的参数, substr用来截取特定字符串往后的所有字符
let arr = str.split("&&");//split用来把字符串分割成字符数组 ["id=1", "value=haha", "aaa=11"]
return arr.reduce((prev,next)=>{//prev第一次为空对象,第二次是处理的新数据,next是每一项
let itemarr = next.split("=");//id=1分割成数组后前面是键名后面是键值['id','1']
return {...prev,[itemarr[0]]:itemarr[1]}//...prev要把上次处理的和这次新的合并到一起
},{})
}
fn(search)