简洁的方法来比较多个值

考虑以下几点:

var a = 'jesus'; if(a == 'something' || a == 'nothing' || a=='anything' || a=='everything'){ alert('Who cares?'); } 

有没有办法让这个缩短?

Javascript中有什么像if (a=='bbb'||'ccc')

另外,jQuery可以在这里帮忙吗?

用正则expression式:

 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?');​ 

你可以用这个…

 if (["something", "nothing", "anything", "everything"].indexOf(a) > -1) { alert('Who cares?'); } 

您还将其标记为jQuery,因此如果您需要支持没有Array.prototype.indexOf()旧浏览器,则可以使用$.inArray()

你可以把选项放在数组中,并使用jQuery $.inArray()或javascrpt indexOf()来search数组

纯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"); 

尝试这个:

如果你想检查耶稣以外的话,请尝试下面的内容,

 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; } 

使用ES7,您可以使用Array.prototype.includes ,甚至比indexOf更短的表示法,这已经在每个现代浏览器中实现了。

以下是示例用法:

 if (['hero', 'anything', 'everything'].includes(me)) { alert('Who cares?'); } 

还有Mozilla的polyfill 。

可能是使用开关而不是如果:

 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?');​ 

我会说这是最简洁的跨浏览器expression式的一般用途(当然,只要目标是比较string)。 它也非常灵活,您可以轻松地添加或删除属性:

 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?'); }