coldfusion - 更简洁的数据过滤方式
问题描述
我有一个结构数组中的数据。我无权访问查询变量,我需要过滤数据。所以我有
arData = arData.filter(
function(item){
return (form.searchPhrase == ""
||
item.name CONTAINS form.searchPhrase
||
item.company CONTAINS form.searchPhrase
||
item.address CONTAINS form.searchPhrase
||
item.address2 CONTAINS form.searchPhrase
||
item.city CONTAINS form.searchPhrase
||
item.state CONTAINS form.searchPhrase
||
item.zip CONTAINS form.searchPhrase
||
item.email CONTAINS form.searchPhrase
||
item.tel CONTAINS form.searchPhrase
);
});
我正在检查项目中的所有字段。
我不喜欢的是它似乎高度重复。很可能可以添加一个新的结构键。或者现有的被删除。我正在寻找一种更清洁的方法来做到这一点。
解决方案
那么为什么不直接遍历项目的属性呢?
arData = arData.filter(
function(item){
if (form.searchPhrase == "") {
return true;
}
for (itemProperty in item){
if (isSimpleValue(item[itemProperty]) && item[itemProperty] CONTAINS form.searchPhrase) {
return true;
}
}
return false;
});
如果您的项目可能包含带有null
值的属性(例如,如果您从外部 API 读取 JSON),您也需要检查structKeyExists(item, itemProperty)
循环。
推荐阅读
- tensorflow - 如何使用 tensorflow 创建这个自定义 ANN?
- shell - 使用 grep 根据特定条件记录表格的特定单元格
- kubernetes - 如何从 K3s 集群中的应用程序 pod 中删除机密的依赖关系
- github - Terraform CICD 管道 GCP
- java - 我的代码在硒中不起作用,需要帮助
- c# - Lambda Sum 子查询没有给出正确的结果
- css - 溢出:自动或溢出:滚动。滚动条显示但不工作
- excel - XML 到 Excel 映射(或 Access)的新手——想要保存和重复使用映射
- android - 使用一段时间后无法连接 Azure 通知 nhub
- html - jquery搜索卡