Javascript 如何使用开关盒实现它?
我有以下功能:Javascript 如何使用开关盒实现它?,javascript,switch-statement,Javascript,Switch Statement,我有以下功能: gameActions(e: KeyboardEvent) { if (e.keyCode === 27 || e.keyCode === 9 || (e.keyCode === 9 && e.shiftKey)) { this.LaunchInventory(); } else if (e.keyCode === 13) { //Enter this.Shoot()
gameActions(e: KeyboardEvent) {
if (e.keyCode === 27 || e.keyCode === 9 || (e.keyCode === 9 && e.shiftKey)) {
this.LaunchInventory();
}
else if (e.keyCode === 13) { //Enter
this.Shoot();
}
else if (e.keyCode === 40) { //Down
this.Crouch();
}
else if (e.keyCode === 38) { //Up
this.Jump();
}
}
如何使用switch case实现此代码?我只是不知道如何将条件语句
e.shiftKey&&e.keyCode
传递给case语句。e.keyCode==9&&e.shiftKey条件是完全冗余的,因为检查e.keyCode==9
就足以输入相同的条件。您可以直接放下它,这将使使用开关盒变得非常简单:
gameActions(e: KeyboardEvent) {
switch(e.keycode) {
case 27:
case 9:
this.LaunchInventory();
break;
case 13:
this.Shoot();
break;
case 40:
this.Crouch();
break;
case 38:
this.Jump();
break;
}
e.keyCode===9&&e.shiftKey
条件是完全冗余的,因为检查e.keyCode===9
就足以进入相同的条件。您可以直接放下它,这将使使用开关盒变得非常简单:
gameActions(e: KeyboardEvent) {
switch(e.keycode) {
case 27:
case 9:
this.LaunchInventory();
break;
case 13:
this.Shoot();
break;
case 40:
this.Crouch();
break;
case 38:
this.Jump();
break;
}
这看起来不像JavaScript。无论如何,让我们看看您尝试了什么。第一个
if
语句不依赖于e.shiftKey
<代码>如果(e.keyCode==27 | | e.keyCode===9)就足够了。提示一下:启动库存()的最终条件是多余的。如果(e.keyCode==9&&e.shiftKey)
为真,那么e.keyCode==9
也是真的。这看起来不像JavaScript。无论如何,让我们看看您尝试了什么。第一个if
语句不依赖于e.shiftKey
<代码>如果(e.keyCode==27 | | e.keyCode===9)就足够了。提示一下:启动库存()的最终条件是多余的。如果(e.keyCode==9&&e.shiftKey)
是真的,那么e.keyCode==9
也是真的。非常感谢。我完全忽略了它。感觉好笨!谢谢。我完全忽略了它。感觉好笨!