假设我有一些数据:
let data = { a: 1, b: 2, c: 3}
Run Code Online (Sandbox Code Playgroud)
我想将该数据添加到现有 URL:
const url = new URL('https://www.mywebsite.com')
Run Code Online (Sandbox Code Playgroud)
我想将对象的所有键和值参数设置为该 URL,而searchParams
无需直接set
设置append
每个项目。我想将整个事情设置为 searchParams。
我只想以某种方式将其传递/替换现有的搜索参数。我希望事情是这样的:
const params = new URLSearchParams(data)
url.searchParams = params
Run Code Online (Sandbox Code Playgroud)
或以某种方式
url.searchParams.set(data) // or .append(data)
Run Code Online (Sandbox Code Playgroud)
当然,这些都不起作用。
我不想经历for of
循环Object.entries(data)
,但我没有看到其他方法,我希望我只是还没有找到它。
有没有一种简单的方法可以将对象中的多个键值对/数据设置到 URL 的搜索参数中以构建新的 URL?
期望的结果:
url.toString() // https://www.mywebsite.com/?a=1&b=2&c=3
Run Code Online (Sandbox Code Playgroud)
这是我找到的最接近答案的东西,而且它有效。
URL
将您的重新分配.search
给 的String
版本URLSearchParams
,如下所示:
const url = new URL('https://www.example.com')
const data = { a: 1, b: 2, c: 3 }
const params = new URLSearchParams(data)
url.search = params.toString() // Convert params to a string and add them to url search
Run Code Online (Sandbox Code Playgroud)
结果:
console.log(url.toString()) // https://www.example.com/?a=1&b=2&c=3
Run Code Online (Sandbox Code Playgroud)
完全有效!
console.log(url.toString()) // https://www.example.com/?a=1&b=2&c=3
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1845 次 |
最近记录: |