检查数字是否在一组中的最快方法?

时间:2013-08-10 12:42:33

标签: javascript list hash numbers find

检查Javascript中的数字是否在列表中的最快方法是什么?

我知道indexOf> =但对我来说似乎相当慢。

我必须每秒执行数百万次检查,列表相当短(最多10个条目)

3 个答案:

答案 0 :(得分:2)

jsperf尝试一下,但我怀疑使用对象并将数字设置为属性会比数组搜索更快。

var theList = { 1: true, 2000: true, 253: true, -12077: true, ... };

if (theList[ someNumber ]) { // see if some number is in the list

现在,那就是说,你不可能在网络浏览器中每秒数百万次在JavaScript中做任何有用的事情,除非是在那些没有做太多其他工作的极高端机器上。

答案 1 :(得分:0)

最好使用indexof()

作为您不喜欢的替代方案,请使用Enumerable#include

您可以使用Enumerable#include,但我怀疑它是否比indexof()更快: -

[1, 2, '3', '4', '5'].include(3);

答案 2 :(得分: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