如何使用OR条件过滤多个键

时间:2015-07-03 04:56:50

标签: javascript angularjs angularjs-ng-repeat angularjs-filter

根据文件,

  

{name:"M", phone:"1"}谓词将返回一个项目数组,这些项目的属性名称包含" M" 属性手机包含" 1"。

我想在这些键之间实现。例如,它应该返回属性名称包含" M" 以及具有包含" 1"。

的电话属性的行

我有什么表达可以做到这一点吗?或者我必须为同一个

实现自定义过滤器

2 个答案:

答案 0 :(得分:0)

您可以尝试array filter method

list.filter(function(element){ return element.name.includes('M'); })

也可以尝试jquery

$.grep:

$。grep(list,function(element){return element.name.includes('M');})

答案 1 :(得分:0)

不确定现在是否为时尚早,但看起来创建自定义过滤器就好了。

在这里,

.filter('orFilter', function () {
    return function (list, filterOn) {
        var out = [];
        for (var i = 0; i < list.length; i += 1) {
            var item = list[i];
            for (var key in filterOn) {
                var val = filterOn[key];
                if (~item[key].indexOf(val)) {
                    out.push(item);
                    break;
                }
            }
        }
        return out;
    }
});

如果有人发布了更好的解决方案,我会等待。