数値がJavascriptのリストにあるかどうかを確認する最速の方法は何ですか?
indexOf >= については知っていますが、かなり遅いようです。
毎秒何百万ものチェックを実行する必要があり、リストはかなり短い (最大 ~10 エントリ)
数値がJavascriptのリストにあるかどうかを確認する最速の方法は何ですか?
indexOf >= については知っていますが、かなり遅いようです。
毎秒何百万ものチェックを実行する必要があり、リストはかなり短い (最大 ~10 エントリ)
jsperfで試してみてください。ただし、オブジェクトを使用して数値をプロパティとして設定すると、配列検索よりも高速になると思います。
var theList = { 1: true, 2000: true, 253: true, -12077: true, ... };
if (theList[ someNumber ]) { // see if some number is in the list
とはいえ、Web ブラウザーで JavaScript を使って有用なことを 1 秒間に何百万回も実行することはできません。
まあ使ったほうがいいindexof()
あなたの場合に高く評価されていない代替手段として使用することですEnumerable#include
Enumerable#includeを使用できますが、次のようなものよりも高速かどうかは疑問ですindexof()
:-
[1, 2, '3', '4', '5'].include(3);
理解の速さを求めている場合は、次を使用しますarray.includes
。
[-1, 1, 2].includes(0) // false
[-1, 1, 2].includes(-1) // true
[-1, 1, 2].includes(-2) // false
[-1, 1, 2].includes(2) // true
[-1, 1, 2].includes(3) // false