为了显示自动完成,我需要从100k对象数组中满足过滤条件的前100个对象,一旦获得100条记录,操作就不应该继续 我不需要要过滤的整个对象列表
filter() {
if (this.DataArray != null && this.AutoCompleteText != null)
this.filteredList = this.DataArray.filter(function(el) {
return el.value.toString().toLowerCase().indexOf(this.AutoCompleteText.toLowerCase()) > -1;
}
.bind(this));
}
答案 0 :(得分:1)
您可以将Array#some
与Array#push
一起使用,并对已过滤的项目进行计数。当count
为零时,循环结束。
filter() {
var count = 100;
if (this.DataArray != null && this.AutoCompleteText != null) {
this.filteredList = [];
this.DataArray.some(function(el) {
if (el.value.toString().toLowerCase().indexOf(this.AutoCompleteText.toLowerCase()) > -1) {
this.filteredList.push(el);
return !--count;
}
}, this);
}
}