Coldfusion 更干净的数据过滤方法

Coldfusion 更干净的数据过滤方法,coldfusion,coldfusion-2018,Coldfusion,Coldfusion 2018,我有一个结构数组中的数据。我没有访问查询变量的权限,需要筛选数据。所以我有 arData = arData.filter( function(item){ return (form.searchPhrase == "" || item.name CONTAINS form.searchPhrase || item.com

我有一个结构数组中的数据。我没有访问查询变量的权限,需要筛选数据。所以我有

    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(项,项属性)