我希望将160以外的任何数字解析为1,并将160解析为0. 160必须解决为1,不多,不少.有人知道怎么做这个吗?我不想使用if或else,但我使用模数和math.abs很好.谢谢.
澄清:没有三元运算符,我正在寻找更多的数学运算,或类似的东西.
(注意,这是在编辑之前)
三元运算符(它既if不是else; 也);):
var value = number === 160 ? 0 : 1;
Run Code Online (Sandbox Code Playgroud)
仍然不是数学而是类型转换:
var value = +(number !== 160);
Run Code Online (Sandbox Code Playgroud)
仍然不是数学而是布尔运算符:
var value = (number !== 160) && 1 || 0;
Run Code Online (Sandbox Code Playgroud)
一点点数学和类型转换:
var value = +(!!(160 - number)); // outer brackets can probably be omitted
Run Code Online (Sandbox Code Playgroud)
也许我现在应该停止;)
虽然不是严格的数学运算,您可以使用JavaScript Math对象的功能max,并min做到这一点.
要n解决为1为160,否则为0,您可以使用:
var r = Math.abs(Math.max(-1, Math.min(1, n - 160))) ;
Run Code Online (Sandbox Code Playgroud)
如果你想要反转1和0,你可以这样做:
var r1 = Math.abs(r - 1) ;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
146 次 |
| 最近记录: |