将多个值与同一变量进行比较

时间:2016-04-26 10:04:32

标签: javascript jquery

我有一长串的字符串要与同一个变量进行比较。

有更短的方法吗?

if(val=="kivi" || val=="apples" || val=="lychee" || val=="banana.C" || val=="mangos")

5 个答案:

答案 0 :(得分:9)

indexOf 与值数组

一起使用
var valArr = ["kivi","apples","lychee","banana.C","mangos"];

if(valArr.indexOf(val) > -1){
   .......
}

答案 1 :(得分:3)

您可以创建一个数组并检查数组中是否存在该值。

Array#includes

var fruits = ['kivi', 'apples', 'lychee', 'banana.C', 'mangos'];

if (fruits.includes(val)) {

var fruits = ['kivi', 'apples', 'lychee', 'banana.C', 'mangos'];

document.getElementById('test').addEventListener('keyup', function() {
    document.getElementById('result').textContent = 'Contains? ' + fruits.includes(this.value);
}, false);
<input type="text" id="test" />
<div id="result"></div>

请注意,最新的浏览器支持此功能。但是,polyfill可以在较旧的浏览器中使用。

Browser CompatibilityMDN

答案 2 :(得分:3)

不。这与直接字符串比较的时间差不多。

如果要比较很多值,可以将这些值放在数组中并使用indexOf,如下所示:

var comparisons = ["kivi", "apples", "lychee", "banana.C", "mangos" ];
if (comparisons.indexOf(val) != -1) {
    // do something...
}

答案 3 :(得分:0)

myArr = ["kivi", "apples", "lychee", "banana.C", "mangos"];

if(myArr.indexOf(val) != -1)
{  
   // Element Found!!
}

答案 4 :(得分:0)

单行检查:

if (['kivi', 'apples', 'lychee', 'banana.C', 'mangos'].includes(val)) {
    // Some code
}