JavaScript IFステートメントでOR条件を使用する方法


108

JavaScriptで次のように記述できることを理解しています。

if (A && B) { do something }

しかし、次のようなORを実装するにはどうすればよいですか。

if (A OR B) { do something }

2
これは、jQuery固有ではありません。それは単なるJavaScriptライブラリです。あなたの質問はJavaScript固有です。
BalusC 2010年

2
@BalusC最近はほぼ同義語です:P
Dolbz

1
@Dolbz pfooo同意しない!! :P
Webスター

1
@ web-starsは2010年以降、多くの変化を遂げています:)
Dolbz '17

@Dolbz mmm、oops ...:Pそして2010
Webスター

回答:



84

それを注目に値するは||また戻りますtrue場合はBOTH ABしていますtrue

JavaScriptでは、あなたが探している場合AB両方ではなく、あなたがに似た何かをする必要があります:

if( (A && !B) || (B && !A) ) { ... }

最初のフレーズは、「||は、var Aまたはvar Bのいずれかがtrueの場合、trueが返されることに注意してください」ではありません。それはあなたが言ったことが(true | true)= trueであることを意味します。これは一般的で理解されています。
Punith Raj 2015

10
(A &&!B)|| (B &&!A)は、よりスムーズなA ^ Bに置き換えることができます

1
@Murplyx:ほとんどの場合は可能ですが、32ビットの範囲外の数値は失敗する可能性があります。(Math.pow(2,32)-1) ^ 0; // -1 (success)...Math.pow(2,32) ^ 0; // 0 (failure)

if (A ? !B : B) {...32ビットの制限がない短い代替になります。または、多分if (!A != !B) {...

1
@squintなぜtrueまたはfalseが32ビットの範囲外になるので、それらは0または1だけで、数値を比較する場合は!! nを使用してブール値を取得するだけです。




9

これが私の例です:

if(userAnswer==="Yes"||"yes"||"YeS"){
 console.log("Too Bad!");   
}

これは、答えが「はい」または「はい」の場合、同じことが起こると言います


1
あなたの答えは既存の答えを改善しますか?特定のユースケースですか?
emecas 14

効いていますか?私はそのようにコーディングしますが、それは構文エラーです。私はこのようにコーディングします。if (name === 'Jam' || name === 'Jem' || name == 'Jum')
ペンギン2015年

7
はい、私はあなたが各ステートメントを個別に含める必要がある難しい方法を発見しました。私はそれif (number === 1||2||3)がそうであるように解決しましたwhile (true)。2番目と3番目の条件は、2が2であるか、3が3であるかを尋ねます。これらの条件は常に解決され、ステートメントに常に合格します。文字数を減らすという私の計画があります。括弧内にステートメントを保持すると、読みやすくなります。
TimSmith-Aardwolf 2015

3
すべての異なるケースバリアントをチェックする代わりに、.toLowerCase()を使用する方がはるかに優れています。
AquaAlex 2015

1
var choice = prompt( "rock、paper or scissors?")。toLowerCase(); if(userChoice!=( "paper" || "rock" || "scissors")){console.log( "Invalid Choice made"); }
AquaAlex 2015

1

正規表現も使用できます。

var thingToTest = "B";
if (/A|B/.test(thingToTest)) alert("Do something!")

一般的な正規表現の例を次に示します。

var myString = "This is my search subject"
if (/my/.test(myString)) alert("Do something here!")

これにより、変数「myString」内で「my」が検索されます。「myString」変数の代わりに文字列を直接置き換えることができます。

追加のボーナスとして、大文字と小文字を区別しない「i」とグローバル「g」を検索に追加することもできます。

var myString = "This is my search subject"
if (/my/ig.test(myString)) alert("Do something here");


面白い。ドキュメンテーション?
ケンシャープ

0

OR(||)if条件と表記がの場合に演算子を使用するには、複数の条件ステートメントが必要です||

if(condition || condition){ 
   some stuff
}

1
古い質問にまったく同じ答えで答えるのはなぜですか?
ケンシャープ


0

正規表現について言及する場合は、switchステートメントについても言及する必要があります。

var expr = 'Papayas';
switch (expr) {
  case 'Oranges':
    console.log('Oranges are $0.59 a pound.');
    break;
  case 'Mangoes':
  case 'Papayas': // Mangoes or papayas
    console.log('Mangoes and papayas are $2.79 a pound.');
    // expected output: "Mangoes and papayas are $2.79 a pound."
    break;
  default:
    console.log('Sorry, we are out of ' + expr + '.');
}


-1

使うだけ ||

if (A || B) { your action here }

注:文字列と数値を使用します。より複雑です。

これを深く理解するためにチェックしてください:


7
この質問は4年前に回答されています。あなたの答えは既存の答えを改善しますか?
Frambot 2014年

@JoeFrambach:いいえ。明確な答えを出したいだけです:)
haotang '28
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.