在我的数据库中,我有一些用户都需要完成家庭作业。每个作业都有一个唯一ID ,唯一名称,日期和其他元数据。
从数据库中检索时,用户的所有作业都存储在private userHomework: Observable<any>
中。然后,我希望通过用户键入的名称来搜索特定的作业。
我使用以下功能:
this.userHomework = this.userHomework.map(allHomework =>
allHomework.filter(homeworkSession =>
homeworkSession.name.toLowerCase().includes(this.userInput.toLowerCase())));
但是,执行该命令时,出现以下错误:allHomework.filter is not a function
。
我尝试以两种不同的方式导入过滤器:
import 'rxjs/add/operator/filter';
和
import { filter } from 'rxjs/operators';
使用第二次导入时,我还会收到以下警告:
[ts] 'filter' is declared but its value is never read.
谁能解释我的错误在哪里以及如何成功过滤我的Observable?
答案 0 :(得分:0)
allHomework
不是Observable
而是any
发出的userHomework
(如您所声明的)。 filter()
函数可能会应用于数组,因此请尝试以下操作:
allHomework
是一个数组private userHomework: Observable<any>[]
filter
导入