javascript - 从查询字符串中删除关联数组
问题描述
我喜欢conditions
从查询string
中删除一个数组变量,它将是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());
解决方案
你想要这个吗?
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";
const urlSearchParams = new URLSearchParams(string);
const params = Object.fromEntries(urlSearchParams.entries());
console.log({ params });
function getFilteredParams(params, filteredString) {
let obj = {};
for (const key in params) {
if (key.indexOf(filteredString) == -1) {
obj[key] = params[key];
}
}
return obj;
}
console.log(getFilteredParams(params, "conditions"));
推荐阅读
- aws-cdk - AWS CDK:如何将指定版本的 Lambda 与别名关联?
- nutch - 被nutch转储后的文件是什么编码?
- angular - 如何检索 Observable
来自 Angular httpClient(如果 200 则为真,如果 404 则为假) - google-cloud-platform - GCP - 将数据从 CSV 上传到 Firestore
- java - 使用 Java 在另一个 Windows 应用程序的文本框中输入文本。`
- javascript - 如何在 Angular/ 中删除 ngFor 中具有 ```CLOSED``` 的项目
- java - 使用正则表达式编译 Java 模式时出错
- python - 检索条目的输入值 - Tkinter
- java - 如何在 jigsaw 和 jre 8 支持下使用 maven?
- azure - 无法从 Kubernetes 获取 apiVersions:无法检索服务器 API 的完整列表