将Coffeescript中的true和false分别转换为1和-1

Cam*_*mel 0 javascript jquery code-golf coffeescript

if x < change.pageX # pageX is cross-browser normalized by jQuery
            val = Number(elem.text())
            return elem.text(o.max) if val + o.step > o.max
            return elem.text(o.min) if val + o.step < o.min
            elem.text(val + o.step)
else x > change.pageX
  # same thing, only - instead of +
Run Code Online (Sandbox Code Playgroud)

(咖啡脚本,但你明白了).我正在寻找一个获取布尔值并将其转换为1(真)或-1(假)的技巧.这样我就能做到val + converted_bool * o.step并保存一个if.

小智 9

你可以这样做......

+x||-1
Run Code Online (Sandbox Code Playgroud)
  • 如果x===true,+x1,那么-1就是短路的.

  • 如果x===false,+x0,-1则返回.


这是另一种方式......

[-1,1][+x]
Run Code Online (Sandbox Code Playgroud)
  • 如果x===true,[+x]将获取1数组的索引.

  • 如果x===false,[+x]将获取0数组的索引.


Que*_*tin 5

听起来像条件(三元)运算符的工作

if true then 1 else -1
1
if false then 1 else -1
-1
Run Code Online (Sandbox Code Playgroud)

  • @Trevor Burnham - 我说"说"不是"说",问题标题已被编辑. (3认同)
  • CoffeeScript中的三元组只使用`if` /`then` /`else`:`if true,然后是1 else -1`. (2认同)
  • @Quentin然后你不应该更新你的答案? (2认同)