如果jQuery中的1或0分辨率

时间:2011-07-06 15:39:37

标签: jquery math logic

我希望将160以外的任何数字解析为1,并将160解析为0. 160必须解决为1,不多,不少。有人知道怎么做这个吗?我不想使用if或else,但我使用模数和math.abs很好。感谢。

澄清:没有三元运算符,我正在寻找更多的数学运算,或者类似的东西。

2 个答案:

答案 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对象的函数maxmin来执行此操作。

要让n解析为1表示160,否则为0,您可以使用:

var r = Math.abs(Math.max(-1, Math.min(1, n - 160))) ;

如果你想要反转1和0,你可以这样做:

var r1 = Math.abs(r - 1) ;