次の点を考慮してください。
var a = 'jesus';
if(a == 'something' || a == 'nothing' || a=='anything' || a=='everything'){
alert('Who cares?');
}
これを短くする方法はありますか?
Javascript のようなものはありif (a=='bbb'||'ccc')
ますか?
さらに、jQuery はここで役に立ちますか?
次の点を考慮してください。
var a = 'jesus';
if(a == 'something' || a == 'nothing' || a=='anything' || a=='everything'){
alert('Who cares?');
}
これを短くする方法はありますか?
Javascript のようなものはありif (a=='bbb'||'ccc')
ますか?
さらに、jQuery はここで役に立ちますか?
あなたはこれを使うことができます...
if (["something", "nothing", "anything", "everything"].includes(a)) {
alert('Who cares?');
}
古いブラウザのサポートに固執している場合...
if (["something", "nothing", "anything", "everything"].indexOf(a) > -1) {
alert('Who cares?');
}
Array.prototype.indexOf()
また、jQuery のタグを付けたので、 を使用せずに古いブラウザーをサポートする必要がある場合は$.inArray()
、
正規表現の場合:
if (/^(something|nothing|anything|everything)$/.exec('jesus')) alert('Who cares?');
またはその逆:
/^(something|nothing|anything|everything)$/.exec('jesus')||alert('Who cares?');
[更新] さらに短く ;-)
if (/^(some|no|any|every)thing$/.exec('jesus')) alert('Who cares?');
オプションを配列に入れ、jQuery$.inArray()
またはjavascrptを使用indexOf()
して配列を検索できます
純粋な JavaScript
var a = 'anything';
arr = ['something', 'nothing', 'anything', 'everything'];
if(arr.indexOf(a) != -1)
alert("condition met");
else
alert("condition not met");
jQueryで
var a = 'jesus';
arr = ['something', 'nothing', 'anything', 'everything'];
if($.inArray(a, arr) != -1) // With jQuery
alert("condition met");
else
alert("condition not met");
ES7 ではArray.prototype.includesを使用でき、最新のすべてのブラウザーに既に実装されている indexOf よりもさらに短い表記法を使用できます。
使用例は次のとおりです。
if (['hero', 'anything', 'everything'].includes(me)) {
alert('Who cares?');
}
そして Mozilla のポリフィル。
これを試して:
イエス以外の単語を確認したい場合は、以下を試してみてください。
if(a != "jesus"){
alert('Who cares?');
}
特定の単語を確認したい場合は、以下を試してください。
var check_arrays = ['something','nothing', 'anything', 'everything'];
if(checkThis(a)){
alert('Who cares?');
}
function checkThis(a)
{
for(i=0;i<check_arrays.length;i++)
{
if(check_arrays[i] == a)
return true;
}
return false;
}
次の場合の代わりにスイッチを使用している可能性があります。
var a = 'jesus';
switch (a){
case 'something':
case 'nothing' :
case 'anything':
case 'everything':
alert('Who cares?');
break;
}
オブジェクト リテラルの使用:
var all={something:1,nothing:1,anything:1,everything:1};
if (all.hasOwnProperty('jesus')) alert('Who cares?');
これは、一般的に使用する最も簡潔なクロスブラウザー式だと思います (目的が文字列を比較することである限り)。また、プロパティを簡単に追加または削除できるため、非常に柔軟です。
all.mything=1;
delete all.nothing;
これを行う簡単な方法はないと思います。ただし、関数in_array
を作成して、必要な場所で使用できます
Array.prototype.in_array = function(p_val) {
for(var i = 0, l = this.length; i < l; i++) {
if(this[i] == p_val) {
return true;
}
}
return false;
}
var v_array = [ 'something','nothing', 'anything', 'everything'];
var a = "jesus";
if(v_array.in_array(a)){
alert('Who cares?');
}