在Javascript中将多个条件合并为一个

时间:2009-10-13 16:10:49

标签: javascript

如何缩短此代码?我想返回除“abc”或“xyz”或“pqr”

之外的所有值
return this.value != "abc" && this.value != "xyz"  && this.value != "pqr";

2 个答案:

答案 0 :(得分:1)

您可以使用数组:

return ["abc","xyz","pqr"].indexOf(this.value) == -1;

或对象:

return !({"abc":1,"xyz":1,"pqr":1}).hasOwnProperty(this.value);

答案 1 :(得分:1)

最常见的两种方式是:

  1. <强>正则表达式

    / ^(ABC | XYZ | PQR)。$ /测试(THIS.VALUE)

  2. 对象属性查找

    this.value in({'abc':1,'xyz':1,'pqr':1})

  3. 请注意,基于正则表达式的解决方案(#1)肯定比普通比较(您的版本)或属性查找(#2)慢。

    另外,请记住属性查找不是非常可靠,因为它可能会报告任何与Object.prototype.*属性相同的任何键的误报(例如“toString”,“ valueOf“等等。