?后的查询字符串转换成obj格式
//现有一段查询字符串,将其转换成对象
var search = "?uname=zhangsan&upwd=123456&favs=football&favs=running&favs=basketball"
//创建一个函数
function str2obj(str) {
//创建一个空对象
var obj = {};
//截取?后的字符串
str = str.slice(1);
//按照&切割字符串为数组
var arr = str.split("&");
//遍历arr数组
for (var s of arr) {//数组元素被遍历后成为字符串
//每遍历一次,将已遍历的字符串按照=分割成数组,并且将当前元素的下标放入key中,值放入value中
var [key, value] = s.split("=");
//如果obj对象中没有下标是key的元素,就将obj[key]通过强行赋值的方式添加进去
if (obj[key] === undefined) {
obj[key] = value;
} else {
//反之如果存在的话,就将当前元素的值拼接到已存在的数组中
obj[key] = [].concat(obj[key], value);
}
}
//最后将obj对象抛出到函数外部
return obj;
}
console.log(str2obj(search));