【发布时间】:2021-11-04 08:16:50
【问题描述】:
我想从查询 string 中删除数组变量 conditions,这将是 window.location.search。
- 第一个输出
Before是初始字符串。 - 第二个是删除
sub之后 - 第三个仍然包含
conditions。
我怎样才能摆脱它?
编辑 未编码的字符串是
conditions[0][0][field]=firstname&conditions[0][0][operator]=is&conditions[0][0][value]=John&conditions[1][0][field]=lastname&conditions[1][0][operator]=is&conditions[1][0][value]=Doe
这是应用程序所需要的。
var string = '?page=foo&sub=bar&conditions%5B0%5D%5B0%5D%5Bfield%5D=firstname&conditions%5B0%5D%5B0%5D%5Boperator%5D=is&conditions%5B0%5D%5B0%5D%5Bvalue%5D=John&conditions%5B1%5D%5B0%5D%5Bfield%5D=lastname&conditions%5B1%5D%5B0%5D%5Boperator%5D=is&conditions%5B1%5D%5B0%5D%5Bvalue%5D=Doe';
var params = new URLSearchParams(string);
console.log('Before', params.toString());
params.delete('sub');
console.log('remove sub works', params.toString());
params.delete('conditions');
console.log('conditions still exist', params.toString());
【问题讨论】:
-
应该是 URL 中
conditions之后的=。 -
您的 URL 中没有名为
conditions的参数 - 不是从 JS 的角度来看。您拥有的是名为conditions[0][0][field]、conditions[0][0][operator]等的参数。 -
它是一个关联数组
-
好的,所以我需要一个自定义方法来删除所有
conditions? -
当它解析这种查询字符串时,它只是一个数组,例如,PHP 的角度。但是对于 JS 来说,这些只是名称不同的参数。猜猜你可以做类似循环所有条目的事情,然后检查密钥是否以
conditions- developer.mozilla.org/en-US/docs/Web/API/URLSearchParams/…
标签: javascript urlsearchparams