题解 | #获取 url 参数#
获取 url 参数
http://www.nowcoder.com/practice/a3ded747e3884a3c86d09d88d1652e10
URL对象
https://zh.javascript.info/url
内建的 URL 类提供了用于创建和解析 URL 的便捷接口。
new URL(url, [base])
url —— 完整的 URL,或者仅路径(如果设置了 base),
base —— 可选的 base URL:如果设置了此参数,且参数 url 只有路径,则会根据这个 base 生成 URL。
function getUrlParam(sUrl, sKey) { let answer = {} const url = new URL(sUrl) params = url.search.substr(1).split('&') //将参数字符串分离 for (let k in params) { const paramsItem = (params[k].split('=')) //将key和value分离 //如果对象中存在该属性,直接push新结果 if (answer[paramsItem[0]]) { answer[paramsItem[0]].push(paramsItem[1]) } else { //若不存在,则创建新属性 answer[paramsItem[0]] = [paramsItem[1]] } } if (sKey) { //如果给了指定值 if (answer[sKey]){ //若只有一个参数,则返回数组第一项 if(answer[sKey].length === 1) return answer[sKey][0] //若存在则返回数组 return answer[sKey] } //不存在则返回空字符串 return '' } else { //没有指定值则返回全部对象 return answer } }