は、下記を参照してください。ユーザの入力に基づいてコードブロックを実行する最適な方法は、配列内の値と一致する場合です。私はこれを達成する2つの方法を試してみた
var cat = ['travel', 'business', 'environment', 'culture', 'football', 'politics', 'world', 'commentisfree', 'lifestyle', 'fashion', 'technology', 'sport', 'money', 'science'];
var userInput = $("#mySearch").val();
for(var i=0; i < cat.length; i++){
if (userInput == cat[i]){
// do something
}else{
// do something else
}
}
をこれが働いて、それが値を見つけるまでしかし、他の条件が実行されました。私はその後、以下に配列を失うことを試みた:
var userInput = $("#mySearch").val();
if (userInput == 'travel' || 'business' || 'environment' || 'culture' || 'football' || 'politics' || 'world' || 'commentisfree' || 'lifestyle' || 'fashion' || 'technology' || 'sport' || 'money' || 'science'){
// do something
}else{
// do something else
}
この方法でも動作します、しかし、それは条件ブラケット(なぜ??全くわからない)との間でない値のために発生します。説明と解決策は大歓迎です!私はあなたがjQueryのを使用しているので、あなたは以下を使用することができますJS
試してみる[.find()](HTTPSの要素があるかどうかを確認するために: //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find)または[.indexOf()](https://developer.mozilla.org/nl/docs/Web/ JavaScript/Reference/Global_Objects/Array/indexOf) –
よく考えてみてください一致するものがあればすべての繰り返しをチェックする必要があるので、elseで実行しないでください。あなたがすべての値を越えるまで、一致がないかどうかは分かりません。それはどういう意味ですか?ループが終了して何も見つからない場合にのみ実行します... – epascarello