协慌网

登录 贡献 社区

在 JavaScript 中切换语句多个案例

我需要在 JavaScript 的 switch 语句中使用多种情况,例如:

switch (varName)
{
   case "afshin", "saeed", "larry":
       alert('Hey');
       break;

   default:
       alert('Default case');
       break;
}

我怎样才能做到这一点?如果没有办法在 JavaScript 中执行类似的操作,我想知道一个替代的解决方案,该解决方案也遵循DRY 概念

答案

switch语句的直通功能。匹配的大小写将一直运行到找到break (或switch语句的末尾)为止,因此您可以将其编写为:

switch (varName)
{
   case "afshin":
   case "saeed":
   case "larry": 
       alert('Hey');
       break;

   default: 
       alert('Default case');
}

这可以在常规 JavaScript 中使用:

function theTest(val) {
  var answer = "";
  switch( val ) {
    case 1: case 2: case 3:
      answer = "Low";
      break;
    case 4: case 5: case 6:
      answer = "Mid";
      break;
    case 7: case 8: case 9:
      answer = "High";
      break;
    default:
      answer = "Massive or Tiny?";
  }
  return answer;
}

theTest(9);

这是完全switch语句的另一种方法:

var cases = {
  afshin: function() { alert('hey'); },
  _default: function() { alert('default'); }
};
cases.larry = cases.saeed = cases.afshin;

cases[ varName ] ? cases[ varName ]() : cases._default();