Javascript 如何使用URLSearchParams从给定url中的值数组中仅删除一个查询字符串?

Javascript 如何使用URLSearchParams从给定url中的值数组中仅删除一个查询字符串?,javascript,query-string,Javascript,Query String,使用此选项: 如果我在url中有一些color[]查询,并且只想删除red,这是最好的算法吗 在下面的示例中,我使用了.delete()方法,然后重新添加了删除的部分。有没有更有效的方法 函数日志(h){document.getElementById('log').innerHTML+=h+'';} 让我来看看http://localhost/?color[]=红色和颜色[]=蓝色和颜色[]=绿色和页码=2'; 日志(uri); 对数(“”)//空间-------- 设U=新的URL(uri

使用此选项:

如果我在url中有一些
color[]
查询,并且只想删除
red
,这是最好的算法吗

在下面的示例中,我使用了
.delete()
方法,然后重新添加了删除的部分。有没有更有效的方法

函数日志(h){document.getElementById('log').innerHTML+=h+'
';} 让我来看看http://localhost/?color[]=红色和颜色[]=蓝色和颜色[]=绿色和页码=2'; 日志(uri); 对数(“”)//空间-------- 设U=新的URL(uri); 让search_params=U.searchParams; 日志('当前搜索参数:'); for(设[k,v]个搜索参数项(){ 日志(`${k}:${v}`); } 对数(“”)//空间-------- 让colors=search_params.getAll('color[]); log('colors:'+JSON.stringify(colors,null,2)); 对数(“”)//空间-------- //通过删除全部并添加其余部分来删除红色 搜索参数删除('color[]); log('删除所有颜色后的参数:'); for(设[k,v]个搜索参数项(){ 日志(`${k}:${v}`); } 对数(“”)//空间-------- 对于(让v表示颜色){ 如果(v!=‘红色’){ 搜索参数append('color[]',v); } } log('colors-after-adding-all-but-red:'+JSON.stringify(search_-params.getAll('color[]),null,2)); 对数(“”)//空间-------- 日志('删除红色后的参数:'); for(设[k,v]个搜索参数项(){ 日志(`${k}:${v}`); }
#log{最小高度:600px;最小宽度:600px;}
您可以使用

let search_params_而不使用_red=新的URLSearchParams(Array.from(search_params.filter)(color=>color[1]!==`red`)
在这里提供一些帮助: 您可以使用

let search_params_而不使用_red=新的URLSearchParams(Array.from(search_params.filter)(color=>color[1]!==`red`)
在这里提供一些帮助:

必须使用URLSearchParams,以便我们可以使用URL对象重建URL。必须使用URLSearchParams,以便我们可以使用URL对象重建URL。