这更多是出于好奇,但是可以在javascript中连接比较吗?
示例:
var foo = 'a',
bar = 'b';
if (foo === ('a' || bar)) {
console.log('yey');
}
选择......
var foo = 'a',
bar = 'b';
if (foo === 'a' || foo === bar)) {
console.log('yey');
}
P.S:当你在几个条件下比较同一个变量时,这可能非常有用。
答案 0 :(得分:2)
您可以使用Array.indexOf
:
if (["a", "b"].indexOf(foo) > -1) {
console.log("yey");
}
虽然某些旧浏览器不支持此方法,但请查看 MDN 中的兼容性问题 - 提供了一个简单的shim。
评论中@Pointy建议的另一种方法是检查对象中是否存在属性:
if (foo in {a: 1, b: 1}) { // or {a: 1, b: 1}[foo]
console.log("yey");
}
答案 1 :(得分:1)
有几种不同的方法可以做到这一点。我最喜欢的是将数组与indexOf结合使用。
if ( ['a', 'b'].indexOf(foo) > -1 ) {
console.log('yey');
}
答案 2 :(得分:1)
Array indexOf是一种解决方案
另一个选项是switch statement
switch (foo) {
case "a":
case "b":
console.log("bar");
break;
case "c":
console.log("SEE");
break;
default:
console.log("ELSE");
}
其他解决方案也可以是对象查找或正则表达式。
答案 3 :(得分:1)
通常我会使用正则表达式:
if (^/a|b$/i.test(foo)) {
...
}