比较多个值的简便方法

考虑以下:


var a = 'jesus';


if(a == 'something' || a == 'nothing' || a=='anything' || a=='everything'){

   alert('Who cares?');

}

有什么办法可以缩短时间?


Javascript中有什么类似的东西if (a=='bbb'||'ccc')吗?


另外,jQuery可以在这里提供帮助吗?


江户川乱折腾
浏览 412回答 3
3回答

郎朗坤

使用正则表达式: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"].includes(a)) {   alert('Who cares?');}如果您对旧版浏览器的支持受阻...if (["something", "nothing", "anything", "everything"].indexOf(a) > -1) {   alert('Who cares?');}您也将其标记为jQuery,因此,如果您需要不带jQuery的旧浏览器Array.prototype.indexOf(),则可以使用$.inArray()。

萧十郎

您可以将选项放入数组中,并使用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");    使用jQueryvar a = 'jesus';arr = ['something', 'nothing', 'anything', 'everything'];if($.inArray(a, arr) != -1) // With jQuery    alert("condition met");    else    alert("condition not met");    
打开App,查看更多内容
随时随地看视频慕课网APP