如何不重复==很多次

时间:2017-10-23 22:36:18

标签: javascript

这是我的例子

if(someString == 'string1' || someString == 'string2' || someString == 'string3' || someString == 'string4');

使用较短的语法有什么技巧吗?

8 个答案:

答案 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并将所有可能性添加到数组中:

&#13;
&#13;
var matches = ['string1', 'string2', 'string3', 'string4'];
var something = 'string2';
var isInArray = matches.includes(something);
console.log(isInArray); // true
&#13;
&#13;
&#13;

答案 7 :(得分:0)

ES6 包括将会这样做

const options = ['string1','string2','string3'];

if (options.includes(someString)) {
  // do something
}