首页 > Web开发 > 详细

2.获取 url 中的参数

时间:2021-05-20 21:54:24      阅读:11      评论:0      收藏:0      [点我收藏+]

题目描述:

获取 url 中的参数
1. 指定参数名称,返回该参数的值 或者 空字符串
2. 不指定参数名称,返回全部的参数对象 或者 {}

3. 如果存在多个同名参数,则返回数组
4. 不支持URLSearchParams方法
示例:
输入:两个参数
http://www.nowcoder.com?key=1&key=2&key=3&test=4#hehe key
输出:
[1, 2, 3]
function getUrlParam(sUrl, sKey) {
var paramArr = sUrl.split(?)[1].split(#)[0].split(&); // 取出每个参数的键值对放入数组
const obj = {};
paramArr.forEach(element => {
const [key, value] = element.split(=);  // 取出数组中每一项的键与值
if(obj[key] === void 0){   // 表示第一次遍历这个元素,直接添加到对象上面,此处 void 0 与undefined作用相同
obj[key]=value
} else{
obj[key]=[].concat(obj[key],value); // 表示不是第一次遍历说明这个键已有,通过数组存起来。
}});
return sKey===void 0? obj:obj[sKey]||‘‘   // 如果该方法为一个参数,则返回对象。
//如果为两个参数,sKey存在,则返回值或数组,否则返回空字符。
}

测试结果:

1.有参数sKey

  console.log(getUrlParam(http://www.nowcoder.com?key=1&key=2&key=3&test=4#hehe,key))

技术分享图片

 

 2.无参数sKey

 console.log(getUrlParam(http://www.nowcoder.com?key=1&key=2&key=3&test=4#hehe))

技术分享图片

 

知识点:

1.split()会分割字符串并且返回一个数组(不改变原字符串);

2.concat()会连接两个及两个以上数组;

例子:

var hege = ["Cecilie", "Lone"];
var stale = ["Emil", "Tobias", "Linus"];
var kai = ["Robin"];
var children = hege.concat(stale,kai);

技术分享图片

 

 3.void 0 与undefined:

一般情况下,void 后面加的任何式子都是undefined,之所以使用void 0 ,我觉得是因为void 0 比较短;

例子:

 console.log(void 0)
 console.log(void 66)
 console.log(void hello world!)

运行结果:

技术分享图片

 

 

2.获取 url 中的参数

原文:https://www.cnblogs.com/origin-666/p/14790596.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!