手写解析url参数方法

编写一个解析 URL 的函数 parseParam(url)

输入

http://www.getui.com?user=superman&id=345&id=678&city=%E6%9D%AD%E5%B7%9E&enabled

期望的结果

{

     user: 'superman',

     id: [ 345, 678 ], // 重复出现的 key 要组装成数组,能被转成数字的就转成数字类型

     city: '杭州', // 中文需解码

     enabled: true, // 未指定值的 key 约定为 true

}

手撸parseParam

function parseParam(herf = location.search.slice(1)) {
    const result = {}
    herf.split('&').map(item => {
        let [key, value = true] = item.split('=')
        value = decodeURIComponent(value) // 转译中文
        if (!result[key]) {
            result[key] = value
        } else {
            result[key] = result[key] instanceof Array ? [].concat(...result[key], value) : [].concat(result[key], value)
        }

    })
    return result
}

你可能感兴趣的:(javascript前端)