#javascript #boolean #conditional-operator
Вопрос:
var isFilterOn = false;
$('#toggle-filter-btn').on('click', function(e){
e.preventDefault();
if(!isFilterOn){
isFilterOn = true;
}else{
isFilterOn = false;
}
})
Предположим, у меня есть приведенный выше фрагмент кода.
Теперь я надеялся сделать ту часть, в которой я установил значение isFilterOn
true или false, более краткой.
Поэтому я попробовал это,
var isFilterOn = false;
$('#toggle-filter-btn').on('click', function(e){
e.preventDefault();
isFilterOn == false ? isFilterOn = true : isFilterOn = false;
})
Но я подозреваю, что есть лучший способ сделать это ?
Ответ №1:
Просто назначьте результат инвертирования правдивости:
$('#toggle-filter-btn').on('click', function(e){
e.preventDefault();
isFilterOn = !isFilterOn;
});
Ответ №2:
таким образом, ваш код может быть немного чистым
var isFilterOn = false;
$('#toggle-filter-btn').on('click', function(e){
e.preventDefault();
// your way
isFilterOn == false ? isFilterOn = true : isFilterOn = false;
// little clean version
isFilterOn = isFilterOn?false:true;
// best option use revers boolean operator
isFilterOn = !isFilterOn
})