我应该如何根据函数中传递的数组参数增加 && 运算符的数量?


function ShortCutKey(elemKey, keyCode, func) {
var elemId = document.getElementById(elemKey);
function RunFuncShorcut(enKey, numkeys) {
if (numkeys > 1) {
if (enKey.code == keyCode[0] && enKey.code == keyCode[1]) func();
} else{
if (enKey.code == keyCode[0]) func();
}
}
if (Array.isArray(keyCode)){
if (keyCode.length > 1) {
elemKey.addEventListener("keyup", function() {
RunFuncShorcut(keyCode, 2);
});
} else{
elemKey.addEventListener("keyup", function() {
RunFuncShorcut(keyCode, 1);
});
}
}
else{
throw "2nd Argument must be an Array";
} 
}

它只限于两个键,意味着只有两个键的组合。我想要代码更少的多重组合。。。但我还是不知道怎么做!

您可以使用每个

every()方法测试数组中的所有元素是否都通过由所提供的功能实现的测试。它返回一个布尔值。

function ShortCutKey(elemKey, keyCodes, func) {
const elemId = document.getElementById(elemKey);
function RunFuncShorcut(enKey) {
if (keyCodes.every(keyCode => keyCode === enKey.code)) func();
}
if (Array.isArray(keyCodes)){
elemKey.addEventListener("keyup", function() {
RunFuncShorcut(keyCodes);
});
}
else{
throw "2nd Argument must be an Array";
} 
}

最新更新