如果我有3组复选框(每组包含N个复选框),并且复选框从同一数据集拉出,我该如何合并" AND"功能,以便如果您从第一组复选框中选择一个项目或2,然后从第二组复选框中选择一个复选框或2,则仅显示匹配的项目...基本上每个复选框(每组复选框)是过滤器?与此处的功能类似:http://jsfiddle.net/jessica_b/7uGDX/
var disar = new Array();
function cboxFilet(actionAdd, idList) {
if (actionAdd == true) {
for (var r in idList) {
disar.push(idList[r]);
}
alert("ADD: " + disar);
} else {
for (r in idList) {
var loc = disar.indexOf(idList[r]);
disar.splice(loc, 1);
}
alert("REMOVE: " + disar);
}
}
答案 0 :(得分:0)
我认为array.filter方法可以为您解决这个问题。以下是一个粗略的例子:
var properties = { //this object will have to be changed when the user selects different checkboxes
filter1: <>,
filter2: <>,
...
filterN: <>
};
var disar = objArray.filter(function(elem){
for(property in properties){
if(!item[property]){ return false; }
}
return true;
});
请注意,这只会检查对象数组中是否存在每个过滤器,您可以轻松更改它以检查特定规则。 (例如&#39; age&#39;&gt; 30)