web-dev-qa-db-ja.com

変数が2つの値のどちらにも等しくないかどうかをテストするにはどうすればよいですか?

テキスト入力の値が2つの異なる値のいずれにも等しくないかどうかをテストするif/elseステートメントを書きたいと思います。このように(私の擬似英語コードを言い訳):

 var test = $( "#test")。val(); 
 if(テストがAまたはBに等しくない){
 do stuff; 
} 
 else {
他のことを行う; 
} 

2行目のifステートメントの条件を作成するにはどうすればよいですか?

38
daGUY

のことを考える !(否定演算子)は「not」、||(ブールOR演算子)を「または」および&&(ブールAND演算子)を「and」として。 演算子 および 演算子の優先順位 を参照してください。

副<文>この[前述の事実の]結果として、それ故に、従って、だから◆【同】consequently; therefore <文>このような方法で、このようにして、こんなふうに、上に述べたように◆【同】in this manner <文>そのような程度まで<文> AひいてはB◆【用法】A and thus B <文>例えば◆【同】for example; as an example:

if(!(a || b)) {
  // means neither a nor b
}

ただし、 De Morganの法則 を使用すると、次のように記述できます。

if(!a && !b) {
  // is not a and is not b
}

上記のaおよびbは、任意の式(test == 'B'または必要なもの)。

もう一度、test == 'A'およびtest == 'B'は式です。1番目の形式の展開に注意してください。

// if(!(a || b)) 
if(!((test == 'A') || (test == 'B')))
// or more simply, removing the inner parenthesis as
// || and && have a lower precedence than comparison and negation operators
if(!(test == 'A' || test == 'B'))
// and using DeMorgan's, we can turn this into
// this is the same as substituting into if(!a && !b)
if(!(test == 'A') && !(test == 'B'))
// and this can be simplified as !(x == y) is the same as (x != y)
if(test != 'A' && test != 'B')
112
user166390

ECMA2016最短回答、複数の値を再チェックする場合に特に適しています:

if (!["A","B", ...].includes(test)) {}
25
CESCO

一般に、次のようなものになります。

if(test != "A" && test != "B")

JavaScriptの論理演算子を読んでください。

8
James Montagne

私はjQueryを使用してそれを行います

if ( 0 > $.inArray( test, [a,b] ) ) { ... }
2
Zlatev

擬似コードで「または」という単語を使用しましたが、最初の文に基づいて、あなたが意味すると思います。これは人々が通常話す方法ではないので、これについていくらか混乱がありました。

あなたが欲しい:

var test = $("#test").val();
if (test !== 'A' && test !== 'B'){
    do stuff;
}
else {
    do other stuff;
}
1
sophistihip
var test = $("#test").val();
if (test != 'A' && test != 'B'){
    do stuff;
}
else {
    do other stuff;
}
1
AlbertVo

If/elseステートメントのelse ifステートメントで使用することをお勧めします。そして、あなたが望むどんな条件の下でもないコードを実行したくない場合は、ステートメントの最後で他のものを省くことができます。それ以外の場合、ifは、それぞれが特定の条件である必要がある任意の数の迂回パスにも使用できます。

if(条件1){

} else if(条件2){

} else {

}

0
JohnnyBoyy