是否有一种使用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'
}]
答案 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.