哈希链接修改参数并返回

// 修改方法
modifyUrlParam(data = {
    }, url = window.location.href) {
   
	const singleCallBack = (_url, _key, _value) => {
   
		const parsedUrl = new URL(_url)
		const _params = new URLSearchParams(parsedUrl.search)
		const regex = new RegExp(`([?&])${
     _key}=[^&]*`)
		const modifiedUrl = _url.replace(regex, (match, prefix) => {
   
		_params.set(_key, _value)
			return prefix + _params.toString()
		})
		return modifiedUrl
	}
	if (Object.prototype.toString.call(data) === '[object Object]') {
   
		const keys = Object.keys(data)
		keys.forEach((key) => url = singleCallBack(url, key, data[key]))
	} else if (Array.isArray(data)) {
   
		data.forEach((item) => url = singleCallBack(url, item.key, item.value))
	}
	return url
}

// 哈希链接
let url = 'https://www.baidu.com/#/?brand=apple&shopId=1000000127'

// 调用方式 - Object
const params = {
    brand: '111', shopId: '1000000128' }
const params_newUrl = modifyUrlParam(url, params)
console.log(params_newUrl) // https://www.baidu.com/#/?brand=111&shopId=1000000128

// 调用方式 - Array
const arr = [
	{
    key: 'brand', value: '222' },
	{
    key: 'shopId', value: '1000000129' }
]
const arr_newUrl = modifyUrlParam(url, arr)
console.log(arr_newUrl) // https://www.baidu.com/#/?brand=222&shopId=1000000129

相关推荐

  1. 修改参数返回

    2024-01-11 05:58:04       33 阅读
  2. LRU缓存(+双表)

    2024-01-11 05:58:04       17 阅读
  3. websocket携带参数

    2024-01-11 05:58:04       8 阅读
  4. springMvc的Aop解析修改参数

    2024-01-11 05:58:04       33 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-11 05:58:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-11 05:58:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-11 05:58:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-11 05:58:04       18 阅读

热门阅读

  1. Golang 线程安全与 sync.Map

    2024-01-11 05:58:04       34 阅读
  2. 结构体 位域

    2024-01-11 05:58:04       38 阅读
  3. MySQL索引

    2024-01-11 05:58:04       25 阅读
  4. 网络基础面试题(四)

    2024-01-11 05:58:04       27 阅读
  5. 【leetcode100-033】【链表】排序链表

    2024-01-11 05:58:04       39 阅读
  6. C/C++指针、数组和结构体浅析

    2024-01-11 05:58:04       43 阅读