如何仅从JavaScript过滤器方法获取前100个对象

时间:2017-01-02 14:52:50

标签: javascript arrays

为了显示自动完成,我需要从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));
}

1 个答案:

答案 0 :(得分:1)

您可以将Array#someArray#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);
    }
}