Javascript,最快的方式来知道某个值是否在数组中?

时间:2012-11-27 15:47:12

标签: javascript arrays performance

  

可能重复:
  array.contains(obj) in JavaScript

假设我有一个数组= [0,8,5]

知道8是否在这个内部的最快方法是什么...例如:

if(array.contain(8)){
 // return true
}

我发现了这个:Fastest way to check if a value exist in a list(Python)

并且:fastest way to detect if a value is in a set of values in Javascript

但这不能回答我的问题。谢谢。

4 个答案:

答案 0 :(得分:9)

使用indexOf()检查值是否存在

array.indexOf(8)

示例代码,

var arr = [0,8,5];
alert(arr.indexOf(8))​; //returns key

更新

对于IE支持

//IE support
if (!Array.prototype.indexOf) { 
    Array.prototype.indexOf = function(obj, start) {
         for (var i = (start || 0), j = this.length; i < j; i++) {
             if (this[i] === obj) { return i; }
         }
         return -1;
    }
}

var arr = [0,8,5];
alert(arr.indexOf(8))

答案 1 :(得分:4)

您可以使用indexOf()函数

var fruits = ["a1", "a2", "a3", "a4"];
var a = fruits.indexOf("a3");

输出结果为:2

答案 2 :(得分:0)

您可以使用indexOf,也可以尝试:

$.inArray(value, array)

答案 3 :(得分:0)

phpjs有一个很好的php的in_array函数的javascript端口,你可以用它

http://phpjs.org/functions/in_array/

参见示例:

in_array('van', ['Kevin', 'van', 'Zonneveld']);