I wrap the href
to URL, and try to remove one component, remove with delete
, but component does not disappear. Do you know why?
JavaScript
x
5
1
let url = new URL(window.location.href);
2
let p = url.searchParams['postId'+$(".selected").length];
3
delete p;
4
window.location = url.toString();
5
I tried this:
JavaScript
1
4
1
const filteredItems = url.searchParams.filter(key => url.searchParams[key] == postID);
2
let key = filteredItems.keys.first;
3
url.searchParams.delete(key);
4
but it says
Uncaught TypeError: url.searchParams.filter is not a function
I tried now this expression, but filter
does not work, do you have any idea why?
JavaScript
1
7
1
function togglePost(postID) {
2
let url = new URL(window.location.href);
3
const filteredItems = Object.keys(url.searchParams).filter(key =>
4
url.searchParams[key] == postID
5
);
6
let key = filteredItems.keys.first;
7
Advertisement
Answer
The delete
operator deletes properties from objects.
You are trying to delete a variable. This fails silently.
To delete something from a URLSearchParams object, use the delete
method:
JavaScript
1
4
1
let url = new URL('http://example.com/foo.cgi?a=1&b=2');
2
console.log(url.toString());
3
url.searchParams.delete('a');
4
console.log(url.toString());