我希望将160以外的任何数字解析为1,并将160解析为0. 160必须解决为1,不多,不少。有人知道怎么做这个吗?我不想使用if或else,但我使用模数和math.abs很好。感谢。
澄清:没有三元运算符,我正在寻找更多的数学运算,或者类似的东西。
答案 0 :(得分:8)
(注意,这是在编辑之前)
三元运算符(它既不是if
也不是else
;)):
var value = number === 160 ? 0 : 1;
仍然不是数学,但类型转换:
var value = +(number !== 160);
仍然不是数学但是布尔运算符:
var value = (number !== 160) && 1 || 0;
一点点数学和类型转换:
var value = +(!!(160 - number)); // outer brackets can probably be omitted
也许我现在应该停止;)
答案 1 :(得分:6)
虽然不是严格的数学运算,但您可以使用javascript Math
对象的函数max
和min
来执行此操作。
要让n
解析为1表示160,否则为0,您可以使用:
var r = Math.abs(Math.max(-1, Math.min(1, n - 160))) ;
如果你想要反转1和0,你可以这样做:
var r1 = Math.abs(r - 1) ;