İşte bu veya bu ise iki koşuldan nasıl bahsediyorum
if (Type == 2 && PageCount == 0) || (Type == 2 && PageCount == '')
PageCount= document.getElementById('<%=hfPageCount.ClientID %>').value;
}
Yanıtlar:
bunları if ifadesinin ana parantezinin içine ekleyin.
if ((Type == 2 && PageCount == 0) || (Type == 2 && PageCount == '')) {
PageCount= document.getElementById('<%=hfPageCount.ClientID %>').value;
}
Mantıksal olarak bu da daha iyi bir şekilde yeniden yazılabilir! Bu tamamen aynı anlama sahip
if (Type == 2 && (PageCount == 0 || PageCount == '')) {
İşte bunu yapmanın alternatif bir yolu.
const conditionsArray = [
condition1,
condition2,
condition3,
]
if (conditionsArray.indexOf(false) === -1) {
"do somthing"
}
Veya ES6
if (!conditionsArray.includes(false)) {
"do somthing"
}
Şu anda çok sayıda koşulu kontrol ediyorum ve bu, 4 koşulun ötesinde if ifadesi yöntemini kullanarak hantal hale geliyor. Gelecekteki izleyiciler için temiz görünen bir alternatifi paylaşmak için ... güzel bir şekilde ölçeklenen şunları kullanıyorum:
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
}
ANDama değil OR.
bütün ifparantez içine alınmalıdır ve oroperatör ||bir değildir !!, bu nedenle
if ((Type == 2 && PageCount == 0) || (Type == 2 && PageCount == '')) { ...
Bazen ifadeleri daha fazla birleştirmek için püf noktaları bulabilirsiniz.
Örneğin:
0 + 0 = 0
ve
"" + 0 = 0
yani
PageCount == 0
PageCount == ''
şöyle yazılabilir:
PageCount+0 == 0
Javascript'te tersine çevirmek 0kadar iyidir .false!0true
!PageCount+0
genel toplam için:
if ( Type == 2 && !PageCount+0 ) PageCount = elm.value;
Onları fazladan bir çift parantez içine sarın ve gitmeniz iyi olur.
if((Type == 2 && PageCount == 0) || (Type == 2 && PageCount == ''))
PageCount= document.getElementById('<%=hfPageCount.ClientID %>').value;
}