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

标签 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));
}

最佳答案

你可以使用 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);
    }
}

关于javascript - 如何仅从 JavaScript 过滤器方法中获取前 100 个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41428965/

相关文章:

javascript - TypeScript 函数继承

javascript - 如何让不同的单选按钮可以在 jquery 中按类或 id 显示不同的 div

javascript - 要列出的随机且唯一数组的字符串

arrays - 如何在 Perl 中有效地从引用的散列和键数组中获取值数组?

javascript - 在页面上显示json数组数据

arrays - 如果我们将数组划分为 log(n) 而不是 2,时间复杂度是多少?

javascript - 查找 iFrame 内容

javascript - 当光标离开子元素悬停父元素时,如何防止父元素的鼠标悬停?

javascript - Meteor 是否存在 ACL 的 mongo 注入(inject)问题?

php - 使用特殊键对数组中的数据进行排序