检查Javascript中的数字是否在列表中的最快方法是什么?
我知道indexOf> =但对我来说似乎相当慢。
我必须每秒执行数百万次检查,列表相当短(最多10个条目)
答案 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