Tho*_*sen 3 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 srcpicture1
else
then change picture.src to srcpicture2
}
Run Code Online (Sandbox Code Playgroud)
但是这将运行数组的长度并最终检查数组的最后一个元素,因为最后一个元素不是8,所以它会将图片更改为picture2.
现在我可以看到为什么会发生这种情况,我对如何检查数组是否包含特定数字没有任何想法.
提前致谢.
你能做的就是给自己写一个函数来检查一个元素是否属于一个数组:
function inArray(array, value) {
for (var i = 0; i < array.length; i++) {
if (array[i] == value) return true;
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
刚做:
var arr = ["1","8","17","14","11","20","2","6"];
if (inArray(arr, 8)) {
// change picture.src to srcpicture1
} else {
// change picture.src to srcpicture2
}
Run Code Online (Sandbox Code Playgroud)
这对我来说更具可读性.
对于额外的点,您可以将函数添加到数组原型中,如下所示:
Array.prototype.has = function (value) {
for (var i = 0; i < this.length; i++) {
if (this[i] === value) return true;
}
return false;
};
Run Code Online (Sandbox Code Playgroud)
然后呼叫将是
if (arr.has(8)) // ...
Run Code Online (Sandbox Code Playgroud)
更进一步,你可以检查indexOf()数组上的方法并使用它 - 如果没有 - 用上面的代码替换它.
PS尽量不要使用Array变量名,因为它是为实际的数组类型保留的.