Javascript 如何使用URLSearchParams从给定url中的值数组中仅删除一个查询字符串?
使用此选项: 如果我在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
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。