如果一个字符串不等于一堆东西,有什么更好的测试方法?

时间:2013-08-05 20:54:06

标签: javascript

现在我有:

if (breadCrumbArr[x] !== 'NEBC' && breadCrumbArr[x] !== 'station:|slot:' &&  breadCrumbArr[x] !== 'slot:' &&  breadCrumbArr[x] !== 'believe') {
    // more code
}

但我认为这可以做得更好......

3 个答案:

答案 0 :(得分:13)

制作一个数组并使用indexOf

['NEBC', 'station:|slot:', 'slot:', 'believe'].indexOf(breadCrumbArr[x]) === -1

答案 1 :(得分:7)

您可以使用switch声明:

switch(inputString){
  case "ignoreme1":
  case "ignoreme2":
  case "ignoreme3":
    break;
  default: 
    //Do your stuff
    break;
}

答案 2 :(得分:0)

除了Blender的回答:如果你想跨浏览器,你也可以使用一个对象而不是一个数组:

var words = {
    'NEBC': true, 
    'station:|slot:': true, 
    'slot:': true, 
    'believe': true
};

if (!words[breadCrumbArr[x]]){
    //do stuff
}

它也更快,但它也更加丑陋,因为你必须为每个用作属性名称的字符串赋值(在本例中为true)。