为了显示自动完成,我需要从 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));
}
最佳答案
你可以使用 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);
}
}
关于javascript - 如何仅从 JavaScript 过滤器方法中获取前 100 个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41428965/