如何使用开关盒实现它?

zel*_*lda 1 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();
        }
        else if (e.keyCode === 40) { //Down
            this.Crouch();
        }
        else if (e.keyCode === 38) { //Up
            this.Jump();
        }
    }
Run Code Online (Sandbox Code Playgroud)

如何使用switch case实现此代码?我只是无法弄清楚如何将条件语句传递e.shiftKey && e.keyCode给case语句.

Mur*_*nik 8

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;
    }
Run Code Online (Sandbox Code Playgroud)