如果使用JavaScript,如何检查数组中的多个元素?

我在一个数组中有一个或多个项目,对于这个例子,假设它们是[65, 66, 67]怎么能(如果它甚至可能)只做一个if条件检查匹配。

例如:

 var keyArray = [65, 66, 67]; if(e.keyCode == any item in keyArray){ //Then do this } 

尝试制作一个jQuery插件,用户可以将多个键映射到单个操作。 例如,按a,b或c可以提示“您正在按a,b或c”;

这是我的实际示例代码不起作用:

 $this.keydown(function(e){ if(e.keyCode in keySplit){ if(typeof callback == 'function'){ callback(); e.preventDefault(); } } }); 

jQuery中有$.inArray方法。

描述:在数组中搜索指定的值并返回其索引(如果未找到,则返回-1)。

或者在phpjs中查看in_array javascript函数。

在现代浏览器中,您有Array.indexOf方法。 对于旧版浏览器,创建类似的方法非常容易:

 if (!Array.prototype.indexOf) { Array.prototype.indexOf = function (searchElement) { var len = this.length; for (var i = 0; i < len; i++) { if (this[i] === searchElement) return i; } return -1; }; } 

现在你有条件地定义了Array.indexOf ,因此它将在每个平台上都可用。 您的代码变为:

 var keyArray = [65, 66, 67]; if ( keyArray.indexOf( e.keyCode ) > -1 ) { //Then do this } 

请注意,如果要完全复制Array.indexOf ,请参阅: MDC indexOf

“in”运算符只能看到键,而不是值,而[65,66,67]的键当然是[0,1,2]。 所以你要检查使用:

 var keyArray = {65:65, 66:66, 67:67}; if (e.keyCode in keyArray) { // whatever } 

keyArray也可以是{65:“”,66:“”,67:“”}; 再次,这是关键值对的关键。