思路:
1. 首先通过window.location.href获取URL参数
2. 通过split分割符从问号的位置开始拆分,并返回一个数组
3. 对拆分的数组进行一个判断,if来判断参数中只有一个等号确保了url参数的准确性。如果参数有误,则会返回一个空对象{}。
4. 然后在对参数进行split分割,以&符号分割
5.对queries数组进行循环,分别拆分&两边的参数
6. pair[0]作为params对象的键:name,age
function getUrlParams() {
var params = {};
// var url = window.location.href;
var url = "https://www.example.com/?name=hello&age=20";
var urlSplit = url.split("?");
// split使用指定的分隔符将字符串对象拆分成新的字符串'数组',比如这里的问号是从问好这里进行拆分(不包括问号)
console.log(urlSplit); // ['https://www.example.com/', 'name=hello&age=20']
if (urlSplit.length === 2) {
var queries = urlSplit[1].split("&");
// 从&符号开始截取
// 对queries数组进行循环,分别拆分&两边的参数
for (var i = 0; i < queries.length; i++) {
var pair = queries[i].split("=");
console.log(pair);
// 从 = 开始拆分
params[pair[0]] = decodeURIComponent(pair[1]);
// pair[0]作为params对象的键:name,age
}
}
return params;
}
console.log(getUrlParams('https://www.example.com/?name=hello&age=20'));