我希望將除160之外的任何數字解析爲1,並將160解析爲0. 160必須正好解析爲1,不多於,不少於160。有人知道怎麼做這個嗎?我不想使用if或else,但使用modulus和math.abs可以。謝謝。jQuery中的1或0以下的分辨率
CLARIFICATION:沒有三元運算符,我正在尋找更多的數學運算,或者像這樣的無所事事。
我希望將除160之外的任何數字解析爲1,並將160解析爲0. 160必須正好解析爲1,不多於,不少於160。有人知道怎麼做這個嗎?我不想使用if或else,但使用modulus和math.abs可以。謝謝。jQuery中的1或0以下的分辨率
CLARIFICATION:沒有三元運算符,我正在尋找更多的數學運算,或者像這樣的無所事事。
雖然不是嚴格的數學運算,但可以使用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) ;
(注意,這是編輯之前)
三元操作符(這是既不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
也許我應該現在就停止;)
澄清「如果還是其他「或」條件/分支「,或者你會得到很多你不想要的答案。 –
沒有任何工作,我看着使用模數和Math.abs(),不幸的是,雖然使160解析爲1是相當微不足道的,使任何數字n解析爲0與相同的算法證明具有挑戰性。 – Vap0r