今天突然遇到这个问题,看了几篇文章都不太理想,自己写出了这个方法,有需要的可以参考下
console.log(getSearch("?a=1&b=2&c=3"));
function getSearch(str) {
if (!str) {
return;
}
str = decodeURI(str);//这个方法是给URL进行解析,解决中文乱码问题
str = str.slice(1);
let obj = {}
let arr = str.split("&")
for (let i = 0; i < arr.length; i++) {
arr[i] = arr[i].split("=");
obj[arr[i][0]] = arr[i][1]
}
return obj;
}
思路:
- 先把
?
去掉 - 字符串通过
&
分割成一个一维数组,格式:["a=1","b=2","c=3"]
- 在此基础上再通过
=
将每个数组项的字符串分割,格式:[["a","1"],["b","2"],["c","3"]]
- 对象获取二维数组的每一项,第一位为属性名,第二位为属性值
以上就是search参数转为对象的全部内容,有用记得点赞收藏哦!!!