Javascript检查数组是否存在特定数字

Javascript检查数组是否存在特定数字,javascript,arrays,element,contains,Javascript,Arrays,Element,Contains,我已经在这里搜索了很多问题,但是还没有找到一个我认为适合我的问题,所以如果你知道一个,请链接到它 我有一个数组,我想搜索一个特定的数字,如果这个数字在数组中,我想采取一个行动,如果不是,那么另一个行动 我有类似的东西 var Array = ["1","8","17","14","11","20","2","6"]; for(x=0;x<=Array.length;x++) { if(Array[x]==8) then change picture.src to

我已经在这里搜索了很多问题,但是还没有找到一个我认为适合我的问题,所以如果你知道一个,请链接到它

我有一个数组,我想搜索一个特定的数字,如果这个数字在数组中,我想采取一个行动,如果不是,那么另一个行动

我有类似的东西

var Array = ["1","8","17","14","11","20","2","6"];

for(x=0;x<=Array.length;x++)
{
    if(Array[x]==8)
        then change picture.src to srcpicture1
    else
        then change picture.src to srcpicture2
}
var数组=[“1”、“8”、“17”、“14”、“11”、“20”、“2”、“6”];

对于(x=0;x为什么不在找到正确的数字后中止循环:

for(x=0;x<=Array.length;x++)
{
    if(Array[x]==8) {
        //change picture.src to srcpicture1
        break;
    }
}

对于(x=0;x您可以先对数组进行排序,然后只检查数组中某个数字存在的点。

您可以编写一个函数来检查元素是否属于数组:

function inArray(array, value) {
    for (var i = 0; i < array.length; i++) {
        if (array[i] == value) return true;
    }
    return false;
}
这对我来说更易读


对于额外的点,您可以将函数添加到阵列原型中,如下所示:

Array.prototype.has = function (value) {
    for (var i = 0; i < this.length; i++) {
        if (this[i] === value) return true;
    }
    return false;
};
更进一步,您可以检查数组上的
indexOf()
方法,并使用它-如果没有-用上面的代码替换它


注意:尽量不要将
数组
用作变量名,因为它是为实际数组类型保留的。

使用此选项

ie版本


< p>如果你有独特的键,更快的检索是你所关心的,你可以考虑使用一个映射而不是一个数组(如果有一个硬数组的情况下使用数组,那么它当然不会起作用)。如果使用一个映射,你只需检查“如果(num in ARR)”。(对此我不确定),这可能会引起问题。我知道,实际上我没有,我忘了写我的ArrayTanks Emil。这听起来是个好主意,我正在尝试,如果我现在可以说-不要修改内置对象原型?只有当你必须…关于你的问题-有一个好的和轻的(!)这里的库名为underline.js.50使用数组等的有用方法。试试看。你会发现使用和学习都很好;)不修改内置对象会破坏JavaScript的一半功能。这是可以负责任地完成的。
Array.prototype.has = function (value) {
    for (var i = 0; i < this.length; i++) {
        if (this[i] === value) return true;
    }
    return false;
};
if (arr.has(8)) // ...