let url = 'https://coder.itclan.cn?name=itclanCoder&study=css'
function parseParam(url){
// 1.获取?后字符串消息
let e = url.split('?')[1]
// 2.通过&切割字符,获得数组
let arr = e.split('&')
// 3.处理数组
return arr.reduce((accu,str)=>{
if(str.includes('=')){
let [key,value] = str.split('=')
//检验数字
value = /^\d+$/.test(value) ? +value:value//隐式转换(数字)
value = decodeURIComponent(value)//解码(字符)
//key出现过,则转换为数组
if(accu.hasOwnProperty(key)){
arr[key] = [].concat(accu[key],value)
}
else{
accu[key] = value
}
}
else{
accu[str] = true
// 不包含=就直接复制为true
}
return accu
},{})//accu初始值:空对象
// 4.返回对象
}
parseParam(url)
结果:
{ name: ‘itclanCoder’, study: ‘css’ }