将 Coffeescript 中的 true 和 false 分别转换为 1 和 -1
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 +
(咖啡脚本,但你明白了)。我正在寻找一种技巧来获取布尔值并将其转换为 1(真)或 -1(假)。这样我就可以执行 val + returned_bool * o.step
并保存 if。
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 +
(Coffee Script, but you get the idea). I'm looking for a trick to take a boolean and convert it to either 1 (true) or -1 (false). that way I can do val + converted_bool * o.step
and save an if.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
你可以这样做...
如果
x===true
,则+x
为1
,并且-1
短路。如果
x===false
,则+x
为0
,并返回-1
.这是另一种方式...
如果
x===true
,[+x]
将获取索引1。
如果
x===false
,[+x]
将获取数组的索引0
。You can do it like this...
If
x===true
, the+x
is1
, and the-1
is short-circuited.If
x===false
, the+x
is0
, and the-1
is returned.Here's another way...
If
x===true
,[+x]
will grab index1
of the Array.If
x===false
,[+x]
will grab index0
of the Array.听起来像是条件(三元)运算符的工作
Sounds like a job for a conditional (ternary) operator
我觉得这样会起作用:
该函数定义将导致(不是很令人兴奋)JavaScript:
注意 CoffeeScript
?
是存在运算符,因此会转换为有点意外的 smth作为
I smth like that will work:
That function definition will result into that (not very exciting) JavaScript:
Note that CoffeeScript
?
is existential operator sowill convert to smth a bit unexpected as
(~true)+3 和 (~false) 会给你 1 和负 1 :)
(~true)+3 and (~false) will give you 1 and negative one :)
啊哈!
2 * (!!表达式) - 1
Ah Ha!
2 * (!!expression) - 1
您是否正在寻找除此普通 javscript 之外的任何内容:
或者以函数形式:
涉及布尔值的直接数学将
true
转换为1
并将false
转换为 < code>0:如果对性能感兴趣,这里有一个 jsperf 测试< /a> 提供的四种方法如下答案在这里。在 Chrome 中,三元解决方案的速度快了 7 倍以上。
Are you looking for anything beyond this plain javscript:
Or, in function form:
Straight math involving boolean values converts
true
to1
andfalse
to0
:If performance is of interest, here's a jsperf test of four of the methods offered as answers here. In Chrome, the ternary solution is more than 7x faster.
您还可以在 CoffeeScript 中输入 javascript:
You can also type javascript inside coffeescript: