题解 | #获取 url 参数#
获取 url 参数
http://www.nowcoder.com/practice/a3ded747e3884a3c86d09d88d1652e10
描述
获取 url 中的参数
- 指定参数名称,返回该参数的值 或者 空字符串
- 不指定参数名称,返回全部的参数对象 或者 {}
- 如果存在多个同名参数,则返回数组
- 不支持URLSearchParams方法
示例1
输入:
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){ obj[key]=value } else{ obj[key]=[].concat(obj[key],value); // 相同键名采用concat累加。 } } ); return sKey===void 0? obj:obj[sKey]||'' // 返回整个对象或对象的指定属性 }