function parseParam(url) {
// 将浏览器地址中 ‘?’ 后面的字符串取出来
const paramsStr = /.+\?(.+)$/.exec(url)[1];
// 将截取的字符串以 ‘&’ 分割后存到数组中
const paramsArr = paramsStr.split('&');
// 定义存放解析后的对象
let paramsObj = {};
// 遍历
paramsArr.forEach(param => {
// 判断是否含有key和value
if (/=/.test(param)) {
// 结构获取对象的key和value
let [key, val] = param.split('=');
// 解码
val = decodeURIComponent(val);
// 判断是否转为数字
val = /^\d+$/.test(val) ? parseFloat(val) : val;
// 判断存放对象中是否存在key属性
if (paramsObj.hasOwnProperty(key)) {
// 存在的话就存放一个数组
paramsObj[key] = [].concat(paramsObj[key], val);
} else {
// 不存在就存放一个对象
paramsObj[key] = val;
}
} else {
// 没有value的情况
paramsObj[param] = true;
}
})
return paramsObj;
}