Як вказати кілька умов у операторі if у javascript


87

Ось як я згадую дві умови, якщо це чи те

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

Відповіді:


154

просто додайте їх до головної дужки оператора if, як

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

Логічно це також можна переписати кращим чином! Це має абсолютно однакове значення

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

1
Погоджуються. Також не мав відкривається фігурної дужки для умовного. Це не могло допомогти.
Тасс

26

Ось альтернативний спосіб зробити це.

const conditionsArray = [
    condition1, 
    condition2,
    condition3,
]

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

Або ES6

if (!conditionsArray.includes(false)) {
   "do somthing"
}

19

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

1
Я не бачу коментарів, що це нерозумна практика, тому я вважаю, що це економити для використання. Дякую!
CousinCocaine

2
Варто зазначити і згадати, що це працює лише в тому випадку, якщо всі умови повинні оцінюватися як істинні. Іншими словами, це інший спосіб писати, ANDале ні OR.
Mark Kramer


6

Іноді можна знайти хитрощі для подальшого поєднання тверджень.

Як наприклад:

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;

Це якщо ви хочете зробити свій код якомога коротшим, але це суперечить багатьом передовим практикам. Тримайте свій код читабельним. Ця відповідь є загадковою і спонукає наступну людину, яка переглядає ваш код, зробити якусь помилку.
belvederef

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

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

Це може бути одним із можливих рішень, тому "або" - це || ні !!


3

Оберніть їх додатковою парою парен, і все готово.

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

-1
function go(type, pageCount) {
    if ((type == 2 && pageCount == 0) || (type == 2 && pageCount == '')) {
        pageCount = document.getElementById('<%=hfPageCount.ClientID %>').value;
    }
}

Будь ласка, відступай свій код, також, будь ласка, не відповідай на питання, якщо ти недостатньо впевнений у собі.
Харшіт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.