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
也是真的。非常感谢。我完全忽略了它。感觉好笨!谢谢。我完全忽略了它。感觉好笨!