javascriptのifステートメントで複数の条件を指定する方法


88

これまたはこれが2つの条件に言及する方法は次のとおりです

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

回答:


160

ifステートメントのメインブラケット内にそれらを追加するだけです。

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

論理的には、これもより良い方法で書き直すことができます!これはまったく同じ意味です

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

1
同意する。また、条件付きの開始中括弧はありませんでした。それは役に立たなかったでしょう。
タス通信2015年

27

これを行う別の方法があります。

const conditionsArray = [
    condition1, 
    condition2,
    condition3,
]

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

またはES6

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

19

私は現在、多数の条件をチェックしていますが、たとえば4つの条件を超えるifステートメントメソッドを使用すると扱いにくくなります。将来の視聴者のために見栄えの良い代替案を共有するためだけに...これはうまくスケーリングします。

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 2018

2
これは、すべての条件がtrueと評価される必要がある場合にのみ機能することに注意して言及する価値があります。言い換えれば、これは別の書き方ですANDが、そうではありませんOR
マーククレイマー


5

場合によっては、ステートメントをさらに組み合わせるためのトリックを見つけることができます。

たとえば:

0 + 0 = 0

そして

"" + 0 = 0

そう

PageCount == 0
PageCount == ''

次のように書くことができます:

PageCount+0 == 0

JavaScriptで0同じように良いようであるfalse反転!それは回すだろう0true

!PageCount+0

総計:

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

1
これは、コードをできるだけ短くしたいが、多くのグッドプラクティスに反する場合です。コードを読みやすくします。この答えは不可解であり、あなたのコードを見ている次の人に間違いを犯させるでしょう。
belvederef

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

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

これは可能な解決策の1つである可能性があるため、「または」は||です。ない!!


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

コードをインデントしてください。また、自信がない場合は質問に答えないでください。
Harshit
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.