Если-менее 1 или 0 разрешение в jQuery - PullRequest
3 голосов
/ 06 июля 2011

Я хочу сделать любое число, кроме 160, разрешить до 1, и 160 разрешить до 0. 160 должно разрешить ровно 1, не больше, не меньше.Кто-нибудь знает, как это сделать?Я не хочу использовать if или else, но я в порядке с использованием модулей и math.abs.Спасибо.

РАЗЪЯСНЕНИЕ: нет троичных операторов, я ищу больше математических операций или что-то вроде этого.

Ответы [ 2 ]

8 голосов
/ 06 июля 2011

(обратите внимание, это было до редактирования)

Тернарный оператор (это ни if, ни else;)):

var value = number === 160 ? 0 : 1;

Все еще не математика, но преобразование типов :

var value = +(number !== 160);

Все еще не математика, но логические операторы :

var value = (number !== 160) && 1 || 0;

A немного математика и преобразование типа :

var value = +(!!(160 - number)); // outer brackets can probably be omitted

возможно, мне стоит остановиться;)

6 голосов
/ 06 июля 2011

Хотя это не строго математические операции, вы можете использовать для этого функции объекта 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) ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...