我有100多个结果,我希望能够在没有管道的情况下进行搜索。不使用管道的原因是它会将性能降低很多。 问题是.indexOf返回读取属性' indexOf'未定义的 错误
理想情况下,我想在输入时显示结果(即双向绑定?)
<th class="header7"><input type="text" placeholder="search"
[(ngModel)]="filterString" (keyup)="applyfilter()"></th>
<div class="arrayOfGrade"
*ngFor="let key of arrayOfGradedCoins; let i = index">
this.arrayOfGradedCoins[i] =
{"_id":key._id, "item1": this.item1,"item2": this.item2}
applyfilter = () => {
var results =[];
for (var i = 0; i<this.arrayOfGradedCoins.length; i++) {
for (let key in this.arrayOfGradedCoins[i]) {
if (this.arrayOfGradedCoins[key].indexOf(this.filterString) != -1) {
results.push(this.arrayOfGradedCoins[i]);
}
}
}
this.arrayOfGradedCoins = results;
}
&#13;
答案 0 :(得分:0)
根据评论中的详细信息,我假设您要搜索this.arrayOfGradedCoins[i]
中保存的对象的键。根据这一点,你应该得到基于此的结果。
const results = this.arrayOfGradedCoins.filter(c => {
const keys = Object.keys(c).filter(k => k !=== '_id');
return keys.find(k => ~k.indexOf(this.filterString));
});