Shorhand для a = (a == val1)? нуль: val1;
Любые идеи по поводу выражения, чтобы сделать его еще короче:
a = (a == val1) ? null : val1;
Логика этого выражения (если важно) на самом деле такова:
сделать его расширенным (среди прочего), если на него нажали, а не развернуло ДА. И если он развернут УЖЕ и просто нажал, затем закройте его (затем установите на ноль). Другими словами, отклонение настроек a
как val1
только если он уже установлен val1
и заменить его на ноль (изменить с открытого на закрытое).
1 ответ
Вы могли бы сделать a = !a && val1
если вы не против переключения между false и val1.
Это основано на поведении &&
оператор в JavaScript: если первый операнд истинен &&
Оператор назначает второй операнд, иначе он возвращает первый операнд.
Обратите внимание: это делает ваш код более трудным для чтения. Если вы хотите, чтобы это имело смысл для другого разработчика, вам нужно добавить комментарий, объясняющий, что делает эта строка.