这是我的例子
if(someString == 'string1' || someString == 'string2' || someString == 'string3' || someString == 'string4');
使用较短的语法有什么技巧吗?
答案 0 :(得分:2)
if(["str1","str2","str3","str4"].includes(someString)){
}
答案 1 :(得分:1)
是的:))
['s1', 's2', 's3', 's4'].indexOf(s) != -1
答案 2 :(得分:1)
您始终可以将可能的值放入数组中,然后检查字符串是否与数组中的任何值匹配:
var someString = 'string2';
var possibleValues = ["string1", "string2", "string3", "string4"];
if (possibleValues.indexOf(someString) > -1) {
console.log('Matched at index: ' + possibleValues.indexOf(someString));
}
答案 3 :(得分:1)
创建要检查的值的预定义Set,并使用.has()
方法对其进行测试:
var vals = new Set(['string1', 'string2', 'string3', 'string4']);
var someString = "string2";
var otherString = "stringX";
console.log(vals.has(someString)); // true
console.log(vals.has(otherString)); // false
所以使用if
语句,它看起来像这样:
if (vals.has(someString)) {
// your code
}
答案 4 :(得分:0)
没有像if(string ==“str1”||“str2”|| ... 至少不是我所知道的语言,它实际上没有意义,因为一切都是逻辑表达。如果你有大量的比较,你可以做类似
的事情strings = ["str1", "str2", "str3", ...];
var match = false;
for(var i = 0; i < string.length; i++){
if(strings[i] == someString){ match = true; break; }
}
if(match){ ... do something }
如果你只有原始对象和非复杂的比较(只是找到一些东西),你也可以使用字符串/数组方法
答案 5 :(得分:0)
switch (someString) {
case "string1":
case "string2":
case "string3":
case "string4":
// do something
break;
default:
// this would the else
}
答案 6 :(得分:0)
您可以使用include并将所有可能性添加到数组中:
var matches = ['string1', 'string2', 'string3', 'string4'];
var something = 'string2';
var isInArray = matches.includes(something);
console.log(isInArray); // true
&#13;
答案 7 :(得分:0)
ES6 包括将会这样做
const options = ['string1','string2','string3'];
if (options.includes(someString)) {
// do something
}