使用Javascript数组中的值执行if-else块的最佳方法?

使用Javascript数组中的值执行if-else块的最佳方法?,javascript,jquery,arrays,html,Javascript,Jquery,Arrays,Html,我试图使用JQuery中的on(“keydown”)函数执行if-else语句 实际上,我试图根据是否按下了集合组中的特定键来更改HTML 代码如下: keyCodeToChar = {8:"Backspace",9:"Tab",13:"Enter",16:"Shift",17:"Ctrl",18:"Alt",19:"Pause/Break",20:"Caps Lock",27:"Esc",32:"Space",33:"Page Up",34:"Page Down",35:"End",

我试图使用JQuery中的on(“keydown”)函数执行if-else语句

实际上,我试图根据是否按下了集合组中的特定键来更改HTML

代码如下:

     keyCodeToChar = {8:"Backspace",9:"Tab",13:"Enter",16:"Shift",17:"Ctrl",18:"Alt",19:"Pause/Break",20:"Caps Lock",27:"Esc",32:"Space",33:"Page Up",34:"Page Down",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",45:"Insert",46:"Delete",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",65:"A",66:"B",67:"C",68:"D",69:"E",70:"F",71:"G",72:"H",73:"I",74:"J",75:"K",76:"L",77:"M",78:"N",79:"O",80:"P",81:"Q",82:"R",83:"S",84:"T",85:"U",86:"V",87:"W",88:"X",89:"Y",90:"Z"};

    var letter = keyCodeToChar[e.which || e.keyCode];

    document.getElementById(letter).play();

    var cool_letters = ["L","E","M","Z"];

    if ($.inArray(letter, cool_letters) == true) {

        var myHtml = "<p class='" + letter + "''>" + letter + "</p>";

        $('.key').append(myHtml)
                 .css("display", "block")
                 .css("color", random_colour);

    } else {

        var myHtml = letter;

        $('.key').append(myHtml)
                 .css("display", "block")
                 .css("color", random_colour);

    };
keyCodeToChar={8:“Backspace”,9:“Tab”,13:“Enter”,16:“Shift”,17:“Ctrl”,18:“Alt”,19:“暂停/中断”,20:“Caps Lock”,27:“Esc”,32:“Space”,33:“Page Up”,34:“Page Down”,35:“End”,36:“Home”,37:“Left”,38:“Up”,39:“Right”,40:“Down”,45:“Insert”,46:“Delete”,48:“0”,49:“1”,“50:“2”,51:“3”,“52:“4”,“53:“5:“5”,“54:“6”,“55:“7”,“56:“8”,“57:“9”,“65:”A”,“66:“B”,“68:“D”,69:“E”,70:“F”,71:“G”,72:“H”,73:“I”,74:“J”,75:“K”,76:“L”,77:“M”,78:“N”,79:“O”,80:“P”,81:“Q”,82:“R”,83:“S”,84:“T”,85:“U”,86:“V”,87:“W”,88:“X”,89:“Y”,90:“Z”};
var字母=keyCodeToChar[e.which | | e.keyCode];
document.getElementById(letter.play();
var cool_字母=[“L”、“E”、“M”、“Z”];
if($.inArray(字母,冷字母)=真){

var myHtml=“粘贴更正的代码后,以下内容已过时


我不知道这是否是问题所在,但有一个问题会阻止它工作,
字母
永远不会计算为正在查找的字符串之一

这是因为映射(对象)从字母->字符代码开始,而不是从字符代码->字母开始


或者修复映射(数值应为键)或者通过一些数学运算完全消除映射。

如我在评论中所述,返回索引,这就是你的方法失败的原因…你仍然可以使用该方法,但比较起来像
!=-1

现在编辑以删除打字错误。格式有问题…删除了数组中许多不必要的部分,例如backspace keycodeetcvar信函返回所需的信函使用密钥代码进行比较更安全、更可靠…抱歉,伙计们,复制粘贴了错误的数组。现在已编辑。这确实是问题所在!