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

有没有更短的方法来返回一个条件,1就像true/truthy-1if false/falsy 一样?也许使用按位运算符?

我能想到的最短方法是:

condition?1:-1


慕沐林林
浏览 103回答 4
4回答

沧海一幻觉

假设condition是一个布尔值,我们可以打一个角色:condition*2-1(并不是说我会推荐这样写代码……)一定有比这更短的方法i + (i%2==0?1:-1)您真正想要的只是切换数字中的最后一位,这可以通过异或来实现:i^1

喵喵时光机

就拿+condition || -1其中condition是一个布尔值。

哔哔one

您可以尝试以下操作:condition ^ (condition - 1)所以当条件为真时,那将是:1 ^ (1 - 1) => 1 ^ 0 => 1当条件为假时:0 ^ (0 - 1)=> 0 ^ -1=> -1希望这可以帮助。

摇曳的蔷薇

我看到那些:(为了有趣的转变)// #1let boolToNumber = b=> +b*2-1;// #2boolToNumber = b => (b<<1)-1;// #3boolToNumber = b => b?+b:~b;如果对您来说真正重要的是大小,请将其设为 1 个字符的函数//&nbsp;let boolToNumber = b=> +b*2-1;let b = boolToNumber;let c = true;b(c)// 4 charaters
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript