Измените значение с 0-> 1 или 1-> 0 только с математическими операциями - PullRequest
7 голосов
/ 02 ноября 2011

У меня есть переменная на javascrit, инициализированная на 0. Я хотел бы сделать следующее:

  • если значение равно 0, измените его на 1;
  • если значение равно 1, измените его на 0;

и я избегу условных выражений (например, if / else) для проверки значения.

Я думаю, что просто делаю это с какой-то математической операцией; Я думал, что операция НЕ, но я не знаю, как сделать эту операцию без

Ответы [ 5 ]

30 голосов
/ 02 ноября 2011
x = 1-x;
3 голосов
/ 02 ноября 2011

Вы можете использовать оператор xor:

x = x XOR 1;
2 голосов
/ 02 ноября 2011

Если переменная, скажем, я

i = 1 - я, должен сделать трюк

если i = 0, 1 - 0 = 1, чем i = 1

если i = 1, 1 - 1 = 0, чем i = 0

1 голос
/ 30 марта 2017

Короткий синтаксис XOR:

x ^= 1

Меняет местами от 0 до 1 и от 1 до 0.

1 голос
/ 28 декабря 2016

Вот еще одна нотация, она также изменяет true, false на 1, 0.

x = +x;

Если вы хотите переключить значение

x = +!x;
...