Вот как я упоминаю о двух условиях, если то или иное
if (Type == 2 && PageCount == 0) || (Type == 2 && PageCount == '')
PageCount= document.getElementById('<%=hfPageCount.ClientID %>').value;
}
Ответы:
просто добавьте их в основную скобку оператора if, например
if ((Type == 2 && PageCount == 0) || (Type == 2 && PageCount == '')) {
PageCount= document.getElementById('<%=hfPageCount.ClientID %>').value;
}
Логически это тоже можно переписать в лучшую сторону! Это имеет точно такое же значение
if (Type == 2 && (PageCount == 0 || PageCount == '')) {
Вот альтернативный способ сделать это.
const conditionsArray = [
condition1,
condition2,
condition3,
]
if (conditionsArray.indexOf(false) === -1) {
"do somthing"
}
Или ES6
if (!conditionsArray.includes(false)) {
"do somthing"
}
В настоящее время я проверяю большое количество условий, что становится громоздким с использованием метода оператора if, превышающего, скажем, 4 условия. Просто чтобы поделиться чистой альтернативой для будущих зрителей ... которая хорошо масштабируется, я использую:
var a = 0;
var b = 0;
a += ("condition 1")? 1 : 0; b += 1;
a += ("condition 2")? 1 : 0; b += 1;
a += ("condition 3")? 1 : 0; b += 1;
a += ("condition 4")? 1 : 0; b += 1;
a += ("condition 5")? 1 : 0; b += 1;
a += ("condition 6")? 1 : 0; b += 1;
// etc etc
if(a == b) {
//do stuff
}
ANDно это не так OR.
все ifдолжно быть заключено в скобки, а orоператор - ||нет !!, поэтому
if ((Type == 2 && PageCount == 0) || (Type == 2 && PageCount == '')) { ...
Иногда можно найти уловки для дальнейшего комбинирования статусов.
Как например:
0 + 0 = 0
а также
"" + 0 = 0
так
PageCount == 0
PageCount == ''
можно записать так:
PageCount+0 == 0
В javascript 0это так же хорошо, как falseинвертирование, !это превратилось бы 0вtrue
!PageCount+0
на общую сумму:
if ( Type == 2 && !PageCount+0 ) PageCount = elm.value;
Оберните их лишней парой парней, и все готово.
if((Type == 2 && PageCount == 0) || (Type == 2 && PageCount == ''))
PageCount= document.getElementById('<%=hfPageCount.ClientID %>').value;
}