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

Bec*_*cky 5 javascript jquery

我有一长串字符串可以与同一个变量进行比较.

有没有更短的方法来做到这一点?

if(val=="kivi" || val=="apples" || val=="lychee" || val=="banana.C" || val=="mangos")
Run Code Online (Sandbox Code Playgroud)

Pra*_*lan 9

indexOf与值数组一起使用

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

if(valArr.indexOf(val) > -1){
   .......
}
Run Code Online (Sandbox Code Playgroud)


Tus*_*har 5

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

Array#includes

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

if (fruits.includes(val)) {
Run Code Online (Sandbox Code Playgroud)

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

if (fruits.includes(val)) {
Run Code Online (Sandbox Code Playgroud)
var fruits = ['kivi', 'apples', 'lychee', 'banana.C', 'mangos'];

document.getElementById('test').addEventListener('keyup', function() {
    document.getElementById('result').textContent = 'Contains? ' + fruits.includes(this.value);
}, false);
Run Code Online (Sandbox Code Playgroud)

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

浏览器兼容性MDN

  • _include_ 关于[__浏览器兼容性__](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes#Browser_compatibility)的注释 (3认同)