Javascript 将条件返回为1和-1的最短方法是什么

Javascript 将条件返回为1和-1的最短方法是什么,javascript,Javascript,如果true/truthy和-1如果false/falsy,是否有较短的方法返回条件作为1?也许使用位运算符 我能想到的最短方法是: condition?1:-1 拿着 +condition || -1 其中,条件是一个布尔值。假设条件是一个布尔值,我们可以使用一个字符: condition*2-1 (我不建议这样写代码…) 必须有比i+(i%2==0?1:-1)更短的方法 实际上,您只需要切换数字中的最后一位,这可以通过XOR实现: i^1 我看到那些: (为了搞笑的转变) /#

如果true/truthy
-1
如果false/falsy,是否有较短的方法返回条件作为
1
?也许使用位运算符

我能想到的最短方法是:

condition?1:-1
拿着

+condition || -1

其中,
条件
是一个布尔值。

假设
条件
是一个布尔值,我们可以使用一个字符:

condition*2-1
(我不建议这样写代码…)


必须有比
i+(i%2==0?1:-1)更短的方法

实际上,您只需要切换数字中的最后一位,这可以通过XOR实现:

i^1
我看到那些:

  • (为了搞笑的转变)
/#1
设布尔数=b=>+b*2-1;
// #2
布尔数=b=>(b+b*2-1;
设b=布尔数;
设c=true;
b(c)//4个字符

您可以简单地尝试以下方法:

condition ^ (condition - 1)
因此,当条件为真时,则为:

1 ^ (1 - 1)
 => 1 ^ 0
 => 1
当条件为假时,则:

0 ^ (0 - 1)
=> 0 ^ -1
=> -1

希望这有帮助。

你明白了!至少,这是我的观点…取决于
条件是什么。如果没有更多细节,你使用的条件运算符是最好的选择。缩短它有什么意义?依我看,它已经相当紧凑了。甚至比这更短意味着黑客,更难推理,更容易出错。还有second,你打算用这个
1:-1
值做什么?如果你真的需要缩短这个值,也许还有另外一点来解决这个问题。@Thomas,它看起来像是排序的因素……老实说,为了清楚起见,你的解决方案似乎是提出的最短的解决方案中最好的。节省几个字符不值得在清洁度上损失。去吧好主意,但它不比OP的代码短,我更喜欢它的清晰度非常好!我也不会写这样的代码,哈哈。