Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过检查多个条件进行Javascript数组筛选_Javascript_Arrays - Fatal编程技术网

通过检查多个条件进行Javascript数组筛选

通过检查多个条件进行Javascript数组筛选,javascript,arrays,Javascript,Arrays,我有一个数组: var arr = [ { "id":3, "first_name":"Laila", "last_name":"McCaine", "gender":"female", "populations":[{"population_name":"Heart failure"}, {"population_name":"AMI"}], "score": 55.0

我有一个数组:

var arr = 
[
    {
        "id":3,
        "first_name":"Laila",
        "last_name":"McCaine",
        "gender":"female",      
        "populations":[{"population_name":"Heart failure"}, {"population_name":"AMI"}],
        "score": 55.0
    },
    {
        "id":5,     
        "first_name":"Riva",
        "last_name":"Rontgen",
        "gender":"female",
        "populations":[{"population_name":"Pnumonia"}],
        "score": 85.0
    },
    {
        "id":8,
        "first_name":"Emily",   
        "last_name":"Rosewood",
        "gender":"female",  
        "populations":[],
        "score": 25.0
    }
];
和变量:

var score='';
var population='';
var status = '';
我想在
条件下使用array
filter
函数,例如 获取
得分
小于40、
状态
=1和
总体名称
为“心力衰竭”的记录

问题是,给定3个变量为
动态
,如果其值为“”,则不应应用
过滤器

我怎样才能做到这一点呢?

类似这样的事情:

arr.filter(function(item) {
    var ok = true;

    if (score !== '') {
        ok = item.score < score;
    }

    if (ok && population !== '') {
        // check it
        ok = item.populations.map(function() {return item.population_name;}).indexOf(population) > -1;
    }

    if (ok && status !== '') {
        // check status
    }

    return ok;
});
arr.filter(功能(项目){
var-ok=true;
如果(分数!=''){
ok=项目得分<得分;
}
如果(确定和填充!=''){
//检查一下
ok=item.populations.map(函数(){return item.population_name;}).indexOf(population)>-1;
}
如果(确定和状态!=''){
//检查状态
}
返回ok;
});
var-arr=
[
{
“id”:3,
“地位”:1,
“名字”:“莱拉”,
“姓氏”:“McCaine”,
“性别”:“女性”,
“人群”:[{“人群姓名”:“心力衰竭”},{“人群姓名”:“AMI”}],
“分数”:55.0
},
{
“id”:5,
“地位”:1,
“名字”:“里瓦”,
“姓”:“伦琴”,
“性别”:“女性”,
“人口”:[{“人口名称”:“Pnumonia”}],
“得分”:85.0
},
{
“id”:8,
“状态”:0,
“名字”:“Emily”,
“姓氏”:“红木”,
“性别”:“女性”,
“人口”:[],
“分数”:25.0
}
];
函数过滤器记录(arr){
返回arr.filter(函数(记录){
return record.score>40&&record.status&&(record.populations.filter)(函数(population){
return population.population_name==“心力衰竭”;
})).长度;
});
}
console.log(filterRecords(arr))

是否要在每次修改数组时自动应用数组筛选器?好吧,检查筛选器是否为
;你试过什么?