慕沐林林
2022-11-27 17:18:06
有沒有更短的方法來返回一個條件,1就像true/truthy和-1if false/falsy 一樣?也許使用按位運算符?我能想到的最短方法是:condition?1:-1
4 回答

嗶嗶one
TA貢獻1854條經驗 獲得超8個贊
您可以嘗試以下操作:
condition ^ (condition - 1)
所以當條件為真時,那將是:
1 ^ (1 - 1)
=> 1 ^ 0
=> 1
當條件為假時:
0 ^ (0 - 1)
=> 0 ^ -1
=> -1
希望這可以幫助。

搖曳的薔薇
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
添加回答
舉報
0/150
提交
取消