事象 JavaScriptで数値配列を扱ってたところ、ソート済の数値の配列の中に目的の数値があるか探すところで速度がでない。 原因 Array.prototype.indexOfが線形探索らしいので、遅いらしい。 最初に書いたコードが概ねこんな感じ var numberList = [1,5,9, .... , 25321]; var exists = !(numberList.indexOf(number) < 0) 処理時間はO(n),配列が増えるほど比例的に処理時間が増加してしまう。 対応 ソート済の配列が相手だったので、二分検索すればO(log2 N)まで落ちる。 ちょっと探せば実装はあったのでこれを仕込んで処理時間の問題を解決した。 https://gist.github.com/Wolfy87/5734530 ライブラリを使おう そのあとに、 underscore.jsやlod