js处理url将url参数转为对象(有重复参数)

it2022-05-05  233

在某些情况下需要将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、有重复参数:


最新回复(0)