// 给定的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)
前端面试题-编写函数parseQueryString,它的用途是把URL参数解析为一个对象
猜你喜欢
转载自blog.csdn.net/weixin_46611729/article/details/115030776
今日推荐
周排行