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)) // ...