如何解决如何处理非英文键码?
我正在用 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) {
...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。