Как указать несколько условий в операторе if в javascript


вот как я упоминаю два условия, если это или это

if (Type == 2 && PageCount == 0) !! (Type == 2 && PageCount == '')
    PageCount= document.getElementById('<%=hfPageCount.ClientID %>').value;
}
7 52

7 ответов:

просто добавьте их в основную скобку оператора if, например

if ((Type == 2 && PageCount == 0) || (Type == 2 && PageCount == '')) {
            PageCount= document.getElementById('<%=hfPageCount.ClientID %>').value;
}

логически это может быть переписан в лучшую сторону тоже! это имеет точно такое же значение

if (Type == 2 && (PageCount == 0 || PageCount == '')) {

в настоящее время я проверяю большое количество условий, которые становятся громоздкими, используя метод оператора 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
}

иногда вы можете найти трюки для дальнейшего объединения состояний.

, например:

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 должны быть заключены в скобки и or оператор || не !!, так что

if ((Type == 2 && PageCount == 0) || (Type == 2 && PageCount == '')) { ...
if((Type == 2 && PageCount == 0) || (Type == 2 && PageCount == '')) {

        PageCount= document.getElementById('<%=hfPageCount.ClientID %>').value;
}

Это может быть одним из возможных решений, так " или " это || не !!

оберните их в дополнительную пару parens, и вы хорошо идти.

if((Type == 2 && PageCount == 0) || (Type == 2 && PageCount == ''))
    PageCount= document.getElementById('<%=hfPageCount.ClientID %>').value;
}

вот альтернативный способ сделать это.

let conditionsArray = [
    condition1, 
    condition2,
    condition3,
]

if (conditionsArray.indexOf(false) === -1) {
    "do somthing"
}