我怎么说'不在'在Javascript?

时间:2017-06-14 20:07:50

标签: javascript

我有以下Javascript代码:

addEventListener("keydown", function (e) {
    keysDown[e.keyCode] = true;
}, false);
addEventListener("keyup", function (e) {
    delete keysDown[e.keyCode];
}, false);    
if (81 in keysDown){
    doThisFunction() //q
} 
当我按下键盘上的q按钮时,将调用doThisFunction。 我在keysDown"中找到了#34; 81行。非常有趣。

我想知道是否有办法说"如果81不在keyDown"所以我可以检测到q放开或没有按下q的时刻。

提前致谢!

3 个答案:

答案 0 :(得分:1)

得到索引:

if(keysDown.indexOf(81) < 0){
    //code
}

if it is an object

if (!(num in keysDown)) { ... }

答案 1 :(得分:1)

只需使用negation operator

if (!(81 in keydown)) …

请注意,您需要额外的grouping parenthesis才能获得所需的运算符优先级。

答案 2 :(得分:0)

是的,您可以将整个条件包装在括号中并对其进行否定,如下所示:

if(!(81 in keysDown)) {
    doThisFunction();
}