2

我想实现这个:

//foo is a boolean
if(foo){
    count++;
} else {
    count--;
}

我怎么能用一个衬里写这个?

4

7 回答 7

11

foo ? count++ : count--;

这称为三元运算符,请参阅Javascript 三元运算符的运算符优先级

最简单的解释是: if this ? then this : else this

于 2012-04-27T04:18:01.400 回答
9

试试这个:

count += foo ? 1 : -1
于 2012-04-27T04:16:39.517 回答
5

使用短路评估和 javascripts动态类型,这应该是最短的:

count += foo || -1;
于 2012-04-27T04:52:07.503 回答
3

最简单的是保留您现在拥有的逻辑并转换为三元:

count += foo ? 1 : -1;

于 2012-04-27T04:17:48.910 回答
1

您可以将foo其视为一个数字,特别是10

count += 2 * foo - 1;
于 2012-04-27T04:15:44.103 回答
0
 count = (foo) ? count+1 : count-1;
于 2012-04-27T04:16:24.617 回答
0

请试试这个:

foo ? count++ : count--;
于 2012-04-27T04:17:05.500 回答