双三元运算符,对一个结果不做任何事情

0 javascript ternary-operator

如果outcome既不是1也不是-1,我希望我的三元运算符不做任何事情

outcome === 1 ? playerScore++ : outcome === -1 ? compScore++ : DO_NOTHING;
Run Code Online (Sandbox Code Playgroud)

我意识到我可以写一个0代替DO_NOTHING但是有没有更好的方法来确保在需要时什么都不会发生?

编辑:DO_NOTHING只是一个占位符,可能的解决方案什么都不做.目前我已经写了0而不是它.

T.J*_*der 5

......但有没有更好的方法来确保在需要时什么都不会发生?

不使用条件运算符,不; 你必须在那里有东西.0和其他任何东西一样好.或者如zfrisch所说,你可以使用&&而不是第二个条件(详见答案).

这是一个风格问题,但"更好的方法"是首先使用if或者switch不是条件运算符.

if (outcome == 1) {
    playerScore++;
} else if (outcome == -1) {
    compScore++;
}
Run Code Online (Sandbox Code Playgroud)

要么

switch (outcome) {
    case 1:
        playerScore++;
        break;
    case -1:
        compScore++;
        break;
}
Run Code Online (Sandbox Code Playgroud)

如果你想将它压缩成交货,那就是minifiers/uglifiers /压缩机的用途.:-)