3

数値がJavascriptのリストにあるかどうかを確認する最速の方法は何ですか?

indexOf >= については知っていますが、かなり遅いようです。

毎秒何百万ものチェックを実行する必要があり、リストはかなり短い (最大 ~10 エントリ)

4

3 に答える 3

2

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 秒間に何百万回も実行することはできません。

于 2013-08-10T12:55:39.950 に答える
1

まあ使ったほうがいいindexof()

あなたの場合に高く評価されていない代替手段として使用することですEnumerable#include

Enumerable#includeを使用できますが、次のようなものよりも高速かどうかは疑問ですindexof():-

[1, 2, '3', '4', '5'].include(3);
于 2013-08-10T12:47:37.467 に答える
0

理解の速さを求めている場合は、次を使用します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
于 2021-04-19T06:48:13.927 に答える