Tom*_*Tom 2 javascript arrays numbers
这是一个愚蠢的问题,感觉就像一个.但心理障碍现在很糟糕.:(
我的问题是我有一个只包含数字的数组.我想使用该数组作为查找,但是我传递给数组查找数字的数字一直在查找该数字索引中的数组,而不是数组中是否存在该数字.
例如:
var a = [2,4,6,8,10],
b = 2;
if(a[b]){ /* if the number 2 exists in the array a, then do something * }
Run Code Online (Sandbox Code Playgroud)
但是,它会查看位置2(6)中的数组值,而不是值2是否在数组中.这是完全合理的,但是(心理障碍)我无法想出一种方法来测试一个数字是否存在于数字数组中...我甚至制作了所有字符串,但它确实类型强制并且问题仍然存在.
把头发拉出来.请帮忙,谢谢.:d
if (a.indexOf(2) >= 0)
Run Code Online (Sandbox Code Playgroud)
请注意,IE <9没有indexOf,因此您需要添加它以防它不存在:
if (!Array.prototype.indexOf)
{
Array.prototype.indexOf = function(searchElement /*, fromIndex */)
{
"use strict";
if (this === void 0 || this === null)
throw new TypeError();
var t = Object(this);
var len = t.length >>> 0;
if (len === 0)
return -1;
var n = 0;
if (arguments.length > 0)
{
n = Number(arguments[1]);
if (n !== n) // shortcut for verifying if it's NaN
n = 0;
else if (n !== 0 && n !== (1 / 0) && n !== -(1 / 0))
n = (n > 0 || -1) * Math.floor(Math.abs(n));
}
if (n >= len)
return -1;
var k = n >= 0
? n
: Math.max(len - Math.abs(n), 0);
for (; k < len; k++)
{
if (k in t && t[k] === searchElement)
return k;
}
return -1;
};
}
Run Code Online (Sandbox Code Playgroud)