JS - 过滤数据 - 使用Push&拼接

时间:2016-06-06 19:39:40

标签: javascript checkbox

如果我有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);
    }

}

1 个答案:

答案 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)