を:あなたは、配列ことを確認する必要があり、個別に各項目をチェックします
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
です。真理値はすべて他の値です。
うわー、私たちもどちらも '何か 'を使っていました。 :-) –
@ T.J.Crowder 'some'と' every'は素晴らしいです。あまりにも長く彼らのことを知らずに住んでいた! :-) – Timo