优化/替换多个条件

时间:2019-01-26 14:24:17

标签: javascript onkeydown

我想在用户按下任意箭头键时调用相同的功能。我可以用类似的方法实现它:

if (x.style.display = "block" && 
     (event.keyCode === 37 || 
      event.keyCode === 38 || 
      event.keyCode === 39 || 
      event.keyCode === 40)
   ) 
   { ...}

我只是想知道是否有更优雅的方法可以实现这一目标,也许只需更少的代码即可。

2 个答案:

答案 0 :(得分:1)

使用Array.includes

document.addEventListener('keydown', e => {
  if (![37,38,39,40].includes(e.keyCode)) return
  
  console.log('arrow key pressed')
})

或者您可以检查范围。

答案 1 :(得分:1)

U也可以使用Array.indexOf()

document.addEventListener('keydown', e  =>  {
  if (![37,38,39,40].indexOf(e.keyCode) > -1) 
    return  console.log('arrow key pressed')
})