Bagaimana menentukan beberapa kondisi dalam pernyataan if di javascript


88

Berikut adalah bagaimana saya menyebutkan dua kondisi jika ini atau ini

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

Jawaban:


160

tambahkan saja di dalam braket utama pernyataan if like

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

Logikanya ini juga bisa ditulis ulang dengan cara yang lebih baik! Ini memiliki arti yang persis sama

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

1
Setuju. Juga tidak memiliki kurung kurawal buka untuk kondisional. Itu tidak bisa membantu.
Tass

27

Berikut adalah cara alternatif untuk melakukannya.

const conditionsArray = [
    condition1, 
    condition2,
    condition3,
]

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

Atau ES6

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

19

Saat ini saya memeriksa sejumlah besar kondisi, yang menjadi berat menggunakan metode pernyataan if di luar katakan 4 kondisi. Hanya untuk berbagi alternatif yang tampak bersih bagi pemirsa masa depan ... yang berskala bagus, saya menggunakan:

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
Saya tidak melihat komentar bahwa ini adalah praktik yang tidak bijaksana, jadi saya pikir ini aman untuk digunakan. Terima kasih!
SepupuCocaine

2
Perlu dicatat dan disebutkan bahwa ini hanya berfungsi jika semua kondisi harus bernilai benar. Dengan kata lain, ini adalah cara penulisan lain ANDtetapi tidak OR.
Mark Kramer

6

keseluruhan ifharus diapit tanda kurung dan oroperatornya ||bukan !!, jadi

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

5

Terkadang Anda dapat menemukan trik untuk menggabungkan statment lebih lanjut.

Seperti misalnya:

0 + 0 = 0

dan

"" + 0 = 0

begitu

PageCount == 0
PageCount == ''

bisa ditulis seperti:

PageCount+0 == 0

Dalam javascript 0sama baiknya dengan falsemembalik !itu akan berubah 0menjaditrue

!PageCount+0

untuk total keseluruhan:

if ( Type == 2 && !PageCount+0 ) PageCount = elm.value;

1
Ini jika Anda ingin membuat kode Anda sesingkat mungkin tetapi bertentangan dengan banyak praktik yang baik. Jaga agar kode Anda dapat dibaca. Jawaban ini samar dan akan menyebabkan orang berikutnya yang melihat kode Anda membuat kesalahan.
belvederef

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

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

Ini bisa jadi salah satu solusi yang mungkin, jadi 'atau' adalah || tidak !!


3

Bungkus mereka dengan sepasang paren ekstra dan Anda siap melakukannya.

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;
    }
}

Harap masukkan kode Anda, juga jangan menjawab pertanyaan jika Anda tidak cukup yakin.
Harshit
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.