indexOf 不适合我。离子

indexOf don't work for me. Ionic

所以对我来说,处理字符串的 indexOf 函数无法正常工作。我得到一个类型为 "Betreiber" 的对象列表。就像您在屏幕截图中看到的那样,我正确地获取了数据。但是我不能用 indexOf 过滤,我不明白为什么?

   getFiltList(searchquery: string): Observable<Betreiber[]>{
    return Observable.create( observable => {
        this.fbProvider.getListObs().subscribe( allItems => {
            console.log("Query: " + searchquery);
            console.log(allItems);

            let filteredList = allItems.filter(b => b.name.indexOf(searchquery) > -1); <!-- stop doing work here.. !-->

            console.log(filteredList);
            observable.next(filteredList);
            observable.complete();
        });
    });
}

Screenshot 1: Console log with query input="Test123"

如果我把它改成let filteredList = allItems.filter(b => b.name === searchquery);

搜索类型为 'Betreiber' 的对象的确切名称有效 Console log with query: Test123 after line change

希望你能帮忙.. 也尝试使用 .toLowerCase() 作为搜索查询和课程名称:)

您的数据数组 {anschrift:{...},bankverbindung:{...},id:..., name2:...} 的最后一项似乎没有 属性 namename2.

因此,b.name.indexOf(searchquery) 无法执行并调用运行时错误,因为 b.nameundefined,而 b.name === searchquery 可以执行。