题解 | #获取 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
            }

        }
全部评论

相关推荐

11-03 14:38
重庆大学 Java
AAA求offer教程:我手都抬起来了又揣裤兜了
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务