Javascript 将条件返回为1和-1的最短方法是什么
如果true/truthy和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 我看到那些: (为了搞笑的转变) /#
-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的代码短,我更喜欢它的清晰度非常好!我也不会写这样的代码,哈哈。