Oto, jak wymieniłem dwa warunki, jeśli to lub to
if (Type == 2 && PageCount == 0) || (Type == 2 && PageCount == '')
PageCount= document.getElementById('<%=hfPageCount.ClientID %>').value;
}
Odpowiedzi:
po prostu dodaj je w głównym nawiasie instrukcji if, np
if ((Type == 2 && PageCount == 0) || (Type == 2 && PageCount == '')) {
PageCount= document.getElementById('<%=hfPageCount.ClientID %>').value;
}
Logicznie rzecz biorąc, można to również przepisać w lepszy sposób! Ma to dokładnie to samo znaczenie
if (Type == 2 && (PageCount == 0 || PageCount == '')) {
Oto alternatywny sposób, aby to zrobić.
const conditionsArray = [
condition1,
condition2,
condition3,
]
if (conditionsArray.indexOf(false) === -1) {
"do somthing"
}
Lub ES6
if (!conditionsArray.includes(false)) {
"do somthing"
}
Obecnie sprawdzam dużą liczbę warunków, które stają się nieporęczne przy użyciu metody instrukcji if poza powiedzmy 4 warunkami. Żeby podzielić się czysto wyglądającą alternatywą dla przyszłych widzów ... która ładnie się skaluje, używam:
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
}
ANDale nie OR.
całość ifnależy ująć w nawiasy a oroperatorem jest ||nie !!, więc
if ((Type == 2 && PageCount == 0) || (Type == 2 && PageCount == '')) { ...
Czasami można znaleźć sztuczki do dalszego łączenia statystyk.
Jak na przykład:
0 + 0 = 0
i
"" + 0 = 0
więc
PageCount == 0
PageCount == ''
można zapisać tak:
PageCount+0 == 0
W JavaScript 0jest tak samo dobra jak falseodwracanie !okazałoby 0siętrue
!PageCount+0
łącznie:
if ( Type == 2 && !PageCount+0 ) PageCount = elm.value;
Owiń je w dodatkową parę spodni i gotowe.
if((Type == 2 && PageCount == 0) || (Type == 2 && PageCount == ''))
PageCount= document.getElementById('<%=hfPageCount.ClientID %>').value;
}