我有一长串的字符串要与同一个变量进行比较。
有更短的方法吗?
if(val=="kivi" || val=="apples" || val=="lychee" || val=="banana.C" || val=="mangos")
答案 0 :(得分:9)
将 indexOf
与值数组
var valArr = ["kivi","apples","lychee","banana.C","mangos"];
if(valArr.indexOf(val) > -1){
.......
}
答案 1 :(得分:3)
您可以创建一个数组并检查数组中是否存在该值。
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可以在较旧的浏览器中使用。
答案 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
}