Javascript 主干过滤多个属性上的多个集合

Javascript 主干过滤多个属性上的多个集合,javascript,backbone.js,backbone.js-collections,Javascript,Backbone.js,Backbone.js Collections,我希望有人能帮助我,我已经创建了一个工具,可以根据各种属性搜索/过滤集合模型,基本上是模型的所有属性 filterUsers: function (collection, filterValue) { var filteredCollection; if (filterValue === "") { return collection.toJSON(); } return filteredCollection = collection.filt

我希望有人能帮助我,我已经创建了一个工具,可以根据各种属性搜索/过滤集合模型,基本上是模型的所有属性

filterUsers: function (collection, filterValue) {
    var filteredCollection;

    if (filterValue === "") {
        return collection.toJSON();
    }

    return filteredCollection = collection.filter(function (data) {

        return _.some(_.values(data.toJSON()), function (value) {

            if (value != undefined) {

                value = (!isNaN(value) ? value.toString() : value);
                //var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;

                return value.indexOf(filterValue) >= 0;

            }

        });

    });

}

现在,对于一个集合,这可以正常工作,但是否可以筛选多个2个集合?并返回一组合并的结果?

如果要筛选两个集合,可以对两个集合运行筛选函数,然后合并结果

    if (filterValue === "") {
        return collection.toJSON();
    }

    var filterThroughValue = function(data) {

        return _.some(_.values(data.toJSON()), function(value) {

            if( value != undefined ) {

                value = (!isNaN(value) ? value.toString() : value);
                //var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;

                return value.indexOf(filterValue) >= 0;

            } 

        });

    };

    return filteredCollection = _.union(
        collection1.filter(filterThroughValue),
        collection2.filter(filterThroughValue)
    );

}
基本上,您要声明您的筛选函数您希望如何筛选您的值,然后将其作为.filter函数的参数传递

签出下划线中的u.union函数: