首页 > 解决方案 > 如何使用 URLSearchParams 仅删除具有相同键的多个键值对之一?

问题描述

我有一个这种形式的网址:https://www.example.com?tag[]=mountain&tag[]=hill&tag[]=pimple

现在我想删除其中一个,比如说tag[]=hill. 我知道,我可以使用正则表达式,但我URLSearchParams用来添加这些,所以我也想用它来删除它们。不幸的是,该delete()函数删除了所有具有相同密钥的对。

有没有办法只删除一个特定的键值对?

标签: javascriptwebapiurlsearchparams

解决方案


做这样的事情:

const tags = entries.getAll('tag[]').filter(tag => tag !== 'hill');
entries.delete('tag[]');
for (const tag of tags) entries.append('tag[]', tag);

推荐阅读