【问题标题】:Dynamic filter array based on array of conditions基于条件数组的动态过滤器数组
【发布时间】:2023-03-04 17:08:01
【问题描述】:

有没有办法使用 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'
}]

【问题讨论】:

  • Json 错误rules 应该是一个数组。

标签: javascript jquery arrays


【解决方案1】:

抱歉,没有内置功能。您必须自己实现它,具体取决于如何您的数组是构建的

但是您可以查看this issue,那里有人提供某种解决方案...在 GIF 中...

【讨论】:

    【解决方案2】:

    你问的方式我从未见过任何原生 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.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-04
      • 1970-01-01
      • 2021-09-28
      • 2015-01-20
      • 1970-01-01
      • 2016-11-03
      • 2022-01-10
      • 2021-11-21
      相关资源
      最近更新 更多