在某些情况下需要将url参数转为对象的形式,有两种情况:
1、url中的参数不同。例如:"?uname=dingdin&upwd=12345&favs=swimming"
2、url中的参数有重复的。例如:"?uname=dingdin&upwd=12345&favs=swimming&favs=running&favs=music"
具体代码如下,可以同时满足上面两种需求:
var search="?uname=dingdin&upwd=12345&favs=swimming&favs=running&favs=music"; function searchObj(str){ //去掉? var str=str.slice(1); //根据“&”分割字符串 var arr=str.split("&"); //定义空的obj,保存对象 var obj={}; //循环遍历分割后的数组 for(var p of arr){ //根据“=”分割 var arr2=p.split("="); //解构 var [name,value]=arr2; //如果obj中的name为undefined就把值填进去,否则就连接 if(obj[name]==undefined){ obj[name]=value; }else{ obj[name]=[].concat(value,obj[name]) } } return obj; } var a= searchObj(search); console.log(a);运行结果:
1、无重复参数:
2、有重复参数: