I’ve got this code working fine. But The delete()
function deletes all entries with the key
equal to "foo".
`let url = new URL("https://example.com?foo=1&bar=2");
let params = new URLSearchParams(url.search);
//Add a second foo parameter.
url.searchParams.append("foo", 4);
console.log(params.getAll("foo")); //Prints ["1","4"].
console.log(url)
url.searchParams.delete("foo", 4);
console.log(url)`
The goal is to delete only one of entry (foo=4) and
2
Answers
How about using indexof?
The
value
option in delete method is not being supported by major browsers other than Firefox, and Node.js only supports the syntax starting from version 20. One way to resolve it is to get all values associated with the search parameterurl.searchParams.getAll("foo")
, filter out the one with undesired value, delete all search parameters with the namefoo
, and finally add the desired ones back.