Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.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
Arrays 如何在typescript中过滤数组_Arrays_Typescript_Filter - Fatal编程技术网

Arrays 如何在typescript中过滤数组

Arrays 如何在typescript中过滤数组,arrays,typescript,filter,Arrays,Typescript,Filter,如何在TypeScript中筛选数组。我试过这个 findAllPersonsNotVisited():Observable<Person[]> { var rightNow = new Date(); var res = rightNow.toISOString().slice(0,10).replace(/-/g,"-"); return this.db.list('person/' + res) **.filter(

如何在TypeScript中筛选数组。我试过这个

    findAllPersonsNotVisited():Observable<Person[]> {

    var rightNow = new Date();
    var res = rightNow.toISOString().slice(0,10).replace(/-/g,"-");




    return this.db.list('person/' + res)
        **.filter(
          person => person.isVisitor === false
        )**
        .do(console.log)
        .map(Person.fromJsonList);

}

数组总是空的。请告诉我必须做什么

验证真实的JavaScript类型而不是person.isVisited的TypeScript类型。可能它不是布尔值,使用===的比较总是返回false。例如,生成的JS代码试图比较0===false。您还可以尝试将===替换为==


From about==:如果操作数严格相等且没有类型转换,则标识运算符返回true

如果您没有订阅可观察的,请使用以下代码

this.serviceName.
    findAllPersonsNotVisited
        .subscribe((data) => {this.allPersons = data},
                             (error)=> console.log(error),
                            (completion) => this.filterData());
使用私有方法在lodash的帮助下提取所需结果

private filterData() {
    this.allPersons.forEach((person)=>{
        let p1=_.find(person,{isVisted : false});
        if(!_.isEmpty(p1)) this.allPersonsIsVisited.push(p1);
    })
}

看起来差不多。你确定allPersons数组中有什么东西可以开始吗?是的,因为如果我不使用过滤器,我会看到所有的人。但用过滤器我什么也看不见
private filterData() {
    this.allPersons.forEach((person)=>{
        let p1=_.find(person,{isVisted : false});
        if(!_.isEmpty(p1)) this.allPersonsIsVisited.push(p1);
    })
}