问题描述
我正在用 JavaScript 创建刽子手游戏。键码是控制台日志中字母的等效数字。
如果我只想使用 [a-z] 字母键,我必须将其设置为 65 到 90。
但我也有非英文字母。
非英文字母的键码为 = [186,191,219,220,221]。如何包含这些字母?
window.addEventListener('keydown',e => {
// console.log(e.keyCode);
if(e.keyCode >= 65 && e.keyCode <=90) {
const letter = e.key;
console.log(e.keyCode)
if (selectedWord.includes(letter)) {
if(!correctLetters.includes(letter)) {
correctLetters.push(letter);
displayWord();
} else {
showNotification();
}
} else {
if(!wrongLetters.includes(letter)) {
wrongLetters.push(letter);
updateWrongLettersEl();
} else {
showNotification();
}
}
}
});
解决方法
您可以使用array.indexOf(value)
,它将在数组中搜索值并返回找到的值的位置。如果它没有找到该值,您将得到 -1
。
// set up an array of the keys
var nonEnglishKeys = [186,191,219,220,221];
// then in your if statement,check for indexOf()
// if it doesn't equal -1,that means it's one of your keys
if((e.keyCode >= 65 && e.keyCode <=90) || nonEnglishKeys.indexOf(e.keyCode) !== -1) {
...