用javascript写这篇文章的最短方法是什么?
我想实现这一点:用javascript写这篇文章的最短方法是什么?,javascript,Javascript,我想实现这一点: //foo is a boolean if(foo){ count++; } else { count--; } 我怎么能用一行写这个呢?你可以把foo当作一个数字,特别是1或0: count += 2 * foo - 1; 试试这个: count += foo ? 1 : -1 请试试这个: foo ? count++ : count--; 最简单的方法是保留现有逻辑并转换为三值: count+=foo?1 : -1;foo?计数++:计数-- 这称为
//foo is a boolean
if(foo){
count++;
} else {
count--;
}
我怎么能用一行写这个呢?你可以把
foo
当作一个数字,特别是1
或0
:
count += 2 * foo - 1;
试试这个:
count += foo ? 1 : -1
请试试这个:
foo ? count++ : count--;
最简单的方法是保留现有逻辑并转换为三值:
count+=foo?1 : -1;代码>foo?计数++:计数--代码>
这称为三元运算符,请参见
最简单的解释是:
如果是这样的话?然后这个:否则这个
使用Java脚本这应该是最短的:
count += foo || -1;
除了这段代码完全不可读之外……OP确实要求使用“最短”的方式(在问题的标题中),而不是一个可读的简短答案。就我个人而言,我觉得hkf的答案是最具可读性的,这可能是我应该如何做到的,因为我看重清晰而不是简洁(这对于那些花费大量时间工作/修改他人代码的人来说是如此),虽然它通常被称为三元表达式或三元运算,但我喜欢这一个,因为它既简短又清晰,而且我认为它比Nikhil的答案更容易阅读。我个人认为清晰胜过简洁。如果你花了大量时间处理别人的代码,你也会重视清晰性方面。你不需要分配到count
。count++
和count--
已经处理好了。count++
和count--
在这里更有意义,然后你甚至不需要分配任务。同意。但是性能的任何改进都是存在的?你假设foo
的计算结果为1,没有理由假设从OP来看,如果foo=12
或foo={…}
?引用自OP://foo是一个布尔值
好的,遗漏了注释。不过,这仍然是一种冒险的方法。代码越少并不总是越好(除非你对“更好”的唯一标准是代码越少,这是不明智的)。但在这种情况下,提供的三元操作之一可能是最好的。
count += foo || -1;