js根据url获取查询的参数

将查询的参数转对象

export function getUrlParams(url) {
  url = url || window.location.href
  let params = {}
  let { hash, search } = new URL(url, location.origin)
  if (url.lastIndexOf('#') < url.lastIndexOf('?')) {
    //URL方法解析顺序:search=>hash。如果hash在search前面,则search的值被拼在hash后面
    search = hash.split('?')[1]
  }
  let searchURL = new URLSearchParams(search)
  searchURL.forEach((value, key) => (params[key] = value))
  return params
}

getUrlParams('http://localhost:3000/#/dataBoard?tabKey=2') //返回{tabKey: '2'}
getUrlParams('http://localhost:3000?tabKey=2#/dataBoard') //返回{tabKey: '2'}

将对象转查询的参数

export function toQueryString(obj) {
  if(Object.prototype.toString.call(obj) !== "[object Object]") return "";
  let arr = []
  for (const key in obj) {
    if (Object.hasOwnProperty.call(obj, key)) {
      arr.push(`${key}=${obj[key]}`)
    }
  }
  return arr.join('&')
}
ObjectToQuery({aaa:555,bbb:888})//返回:aaa=555&bbb=888
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容