2017-01-02 7 views
2

オートコンプリートを表示するには100kオブジェクトの配列からフィルタ条件を満たすトップ100のオブジェクトが必要ですが、100レコードを取得したら操作を続行しないでください あなたがArray#pushArray#someを使用して濾過アイテムを数えることができるJavaScriptフィルタメソッドからトップ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

'.slice(0、100)'? – Tushar

+0

スライスは私が望むものではないデータソースを減らします。結果セットに100個の一致するレコードが含まれます。 –

+2

新しい配列 – charlietfl

答えて

1

をフィルタリングするオブジェクトのリスト全体を必要としています。 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); 
    } 
} 
+1

このアプローチに感謝します –

関連する問題