前端面试题-编写函数parseQueryString,它的用途是把URL参数解析为一个对象

 // 给定的url参数
        const url = 'http://127.0.0.1:8888/api?model=job&action=list?'
        // 将 URL 参数解析为一个对象
        function parseQueryString(url) {
    
    
            // 存放查询参数字符串
            let queryInfo = ''
            // 存放一个对象
            const obj = {
    
    }
            // 如果url参数中只有一个问号(防止参数的值中也有问号)
            if (url.indexOf('?') === url.lastIndexOf('?')) {
    
    
                // 将url以问号分割成数组
                const arr = url.split('?')
                // 拿到数组后一项,查询参数字符串
                queryInfo = arr[arr.length - 1]
            } else {
    
    
                // 拿到第一个问号的索引
                const index = url.indexOf('?')
                // 截取第一个问号后面的字符串
                queryInfo = url.substr(index + 1)
            }

            // 将查询参数字符串以 & 分割成数组
            queryInfo = queryInfo.split('&')
            // 遍历这个数组,将数组元素以等于再次分割,数组元素会变成一个包含两个元素的数组
            // 第一个元素是对象名,第二个元素是对象值
            queryInfo = queryInfo.map(item => item.split('='))
            // 遍历数组,将数组元素按规则填入对象
            queryInfo.forEach(item => obj[item[0]] = item[1])
            // 返回包含查询参数的对象
            return obj
        }
        const obj = parseQueryString(url)
        console.log(obj)

猜你喜欢

转载自blog.csdn.net/weixin_46611729/article/details/115030776