2016-11-15 6 views
3

であるかどうかをチェックする。:JS - のみ9は、アレイ内にある場合の数字は、私は例えば、数字が文字列であるかどうかをチェックするテキスト

var w1 = "1" && "5" && "9"; 
var newX = "1,7,9,5" 
if (newX.indexOf(w1) > -1) { 
      alert("is it"); 
      break; 
} 

残念ながら、コードは警告を示します。 1,5、または9が文字列(newX)に含まれているかどうかを確認するにはどうすればよいですか?

答えて

2
var w1 = "1" && "5" && "9"; 

あなたはそう思わないと思います。この行を

var w1 = ["1", "5", "9"]; 
 

 
var newX = "1,7,9,5" 
 

 
if (w1.some(function(item) { 
 
    return newX.indexOf(item) > -1 
 
})) { 
 
    alert("is it"); 
 
}

+0

うわー、私たちもどちらも '何か 'を使っていました。 :-) –

+1

@ T.J.Crowder 'some'と' every'は素晴らしいです。あまりにも長く彼らのことを知らずに住んでいた! :-) – Timo

1

を:あなたは、配列ことを確認する必要があり、個別に各項目をチェックします

var w1 = "1" && "5" && "9"; 

は、このように正確に同じ結果を持っています

var w1 = "9"; 

&&演算子は左辺オペランドを評価し、正しければ右辺オペランドを評価し、その結果を式の結果とします。

どのようにチェック1,5または9が文字列(newX)にありますか?

何らかのループが必要です。たとえば、あなたは配列にチェックしたいものを入れて、その後、someを使用することができます。

var w1 = ["1", "5", "9"]; 
 
var newX = "1,7,5"; // Removed the 9 just for clarity 
 
// This one finds it 
 
if (w1.some(function(entry) { 
 
    return newX.indexOf(entry) != -1; 
 
})) { 
 
    console.log("is it"); 
 
} 
 
newX = "4, 7, 8"; 
 
// This one doesn't 
 
if (w1.some(function(entry) { 
 
    return newX.indexOf(entry) != -1; 
 
})) { 
 
    console.log("is it 2"); 
 
}

Array#someでは、コールバックが繰り返し呼び出されます。コールバックが真理値を返す場合、someの結果はtrueです。そうでなければ、falseです。 someコールバックはより簡潔であり得ることをES2015で

if (w1.some(entry => newX.indexOf(entry) != -1)) { 
    console.log("is it"); 
} 

¹ "truthy" - ブール値として扱う場合に真強制変換値。値はfalsyまたはtruthyのいずれかです。偽値は、0,NaN,"",undefined,null、もちろんfalseです。真理値はすべて他の値です。

0

使用正規表現とpositive lookahead:すでに述べた一部の人として

var newX = "1,7,9,5" 
 
if (newX.match(/(?=.*1)(?=.*5)(?=.*9)/)) { 
 
    console.log("is it"); 
 
}

0

は、あなたのW1とnewX変数の配列を作りたいです。私の意見では、数字の文字列を比較しようとするのではなく、数値を数値と比較する方が簡単です。上記の解決策のいくつかはあなたのために働くかもしれませんが、ネストされたループで達成することもできます。それを自分のやり方でやっているように見えるものを掘り起こします。

var w1 = [1,5,9]; 
var newX = [1,7,9,5] 

for (i = 0; i < newX.length; i++) { 
    for (j = 0; j < w1.length; j++) { 
     if (w1[j] == newX[i]) 
     alert("Found " + w1[j] + "!"); 
    } 
} 

アレイnewX介して我々第一ループ及びW1アレイを通して我々ループ各インデックス(i)をチェックし、現在のインデックス(j)はnewX現在のインデックスと等しいかどうかを確認します。もしそうなら、私たちはアラートに出力します。この方法があなたに役立つかどうか私に教えてください。あなたがこれを理解するのに助けが必要な場合は、私に相談してください!

関連する問題