基于条件数组的动态过滤器数组

时间:2019-02-21 12:21:56

标签: javascript jquery arrays

是否有一种使用jQuery-QueryBuilder过滤数组的方法?该插件会生成一系列条件,如下所示:

condition:"OR"
rules: {
    field:"name"
    id:"name"
    input:"select"
    operator:"equal"
    type:"string"
    value:"Albert"
}

我有一个这样的对象数组:

var user = [{
    personal: {
        email: ''
        age: 30
    }
    code: 1396664
    name: 'Albert'
}, {
   personal: {
        email: ''
        age: 35
    }
    code: 1234123
    name: 'Taylor'
}]

2 个答案:

答案 0 :(得分:0)

抱歉,没有内置功能。您必须根据如何构建数组

自己实现它

但是您可以看看xml to json那里有人在提供某种解决方案...在GIF中...

答案 1 :(得分:0)

您问的方式我从未见过任何本机Jquery解决方案,也许有一些插件可以做到这一点。但是,您可以使用条件创建函数并将其传递给Jquery方法grep:

var user = [{
    personal: {
        email: '',
        age: 30
    },
    code: 1396664,
    name: 'Albert'
}, {
   personal: {
        email: '',
        age: 35
    },
    code: 1234123,
    name: 'Taylor'
}, {
   personal: {
        email: '',
        age: 41
    },
    code: 9999999,
    name: 'John'
}];

var filter1 = function(value, index){
    return value.name == 'Albert' || value.personal.age > 40;
};

var filter2 = function(value, index){
    return value.name == 'Taylor';
};

arr = jQuery.grep(user, filter1);
arr2 = jQuery.grep(user, filter2);

console.log(arr);
console.log(arr2);

示例为here.