如何检查数组是不是包含元素[重复]
Posted
技术标签:
【中文标题】如何检查数组是不是包含元素[重复]【英文标题】:How to check whether an array contains an element [duplicate]如何检查数组是否包含元素[重复] 【发布时间】:2013-02-20 08:08:15 【问题描述】:我想限制可以按下的键。
$('.txtComments').keydown(function (event)
var keys = new Array();
keys[0] = "8";
keys[1] = "46";
keys[2] = "37"
keys[3] = "39"
if(!(....)) //Check whether the keyCode is either of 8, 46, 37, or 39.
event.preventDefault();
);
感谢您的帮助
【问题讨论】:
var keys = [8,46,37,39];
,那么你可以使用$.inArray
和event.which
尝试使用$.inArray
做个好人。停止投票。谢谢。
【参考方案1】:
这里最简单(也是最快)的方法是使用对象作为地图:
var keys = ;
keys[8] = true;
...
if (!keys[event.which])
...
请注意,为了更好的兼容性,我建议使用event.which 而不是键码。
【讨论】:
【参考方案2】:所以有很多方法可以实现这一点:
只需硬编码:
var keyCode = event.which;
if (keyCode != 8 && keyCode != 46 ...)
或检查一个数组:
var keys = [8, 46, ...];
if (keys.indexOf(keyCode) < 0)
或 jQuery 等价物:
if ($.inArray(keyCode, keys) < 0)
或检查一个对象:
var keys = 8: 1, 46: 1, ...
if (! (keyCode in keys) ) // or if (!keys[keyCode])
或开关:
switch (keyCode)
case 8: case 46: ...
// do nothing
break;
default:
event.preventDefault();
【讨论】:
【参考方案3】:jQuery 提供了实用方法jQuery.inArray()
来检查数组是否包含值。
【讨论】:
【参考方案4】:if(!keys.in_array(event.keyCode));
并将您的 keydown
更改为 keypress
<script type="text/javascript">
// Benoit Asselin - http://www.ab-d.fr
Array.prototype.in_array = function(p_val)
for(var i = 0, l = this.length; i < l; i++)
if(this[i] == p_val)
return true;
return false;
</script>
【讨论】:
【参考方案5】:你可以使用:-
var keys = [];
keys[8] = keys[4] = keys[37] = keys[39] = true;
if(keys[keyval])
【讨论】:
以上是关于如何检查数组是不是包含元素[重复]的主要内容,如果未能解决你的问题,请参考以下文章