为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕沐林林 2022-11-27 17:18:06
有没有更短的方法来返回一个条件,1就像true/truthy和-1if false/falsy 一样?也许使用按位运算符?我能想到的最短方法是:condition?1:-1
查看完整描述

4 回答

?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

假设condition是一个布尔值,我们可以一个角色:

condition*2-1

(并不是说我会推荐这样写代码……)


一定有比这更短的方法i + (i%2==0?1:-1)

您真正想要的只是切换数字中的最后一位,这可以通过异或来实现:

i^1


查看完整回答
反对 回复 2022-11-27
?
喵喵时光机

TA贡献1846条经验 获得超7个赞

就拿

+condition || -1

其中condition是一个布尔值。


查看完整回答
反对 回复 2022-11-27
?
哔哔one

TA贡献1854条经验 获得超8个赞

您可以尝试以下操作:


condition ^ (condition - 1)

所以当条件为真时,那将是:


1 ^ (1 - 1)

 => 1 ^ 0

 => 1

当条件为假时:


0 ^ (0 - 1)

=> 0 ^ -1

=> -1

希望这可以帮助。


查看完整回答
反对 回复 2022-11-27
?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

我看到那些:


(为了有趣的转变)

// #1

let boolToNumber = b=> +b*2-1;

// #2

boolToNumber = b => (b<<1)-1;

// #3

boolToNumber = b => b?+b:~b;

如果对您来说真正重要的是大小,请将其设为 1 个字符的函数

// 

let boolToNumber = b=> +b*2-1;

let b = boolToNumber;

let c = true;

b(c)// 4 charaters


查看完整回答
反对 回复 2022-11-27
  • 4 回答
  • 0 关注
  • 102 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信