如何使用开关盒实现它?

时间:2017-03-01 20:46:41

标签: 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();
        }
    }

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

1 个答案:

答案 0 :(得分: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;
    }
相关问题