如果jQuery中的1或0分辨率

Vap*_*p0r 3 math jquery logic

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

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

Fel*_*ing 8

(注意,这是在编辑之前)

三元运算符(它既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)

也许我现在应该停止;)


Gus*_*Gus 6

虽然不是严格的数学运算,您可以使用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)