关于javascript:Switch语句中单个案例中的多个条件

Multple Criteria in a Single Case inside a Switch Statement

本问题已经有最佳答案,请猛点这里访问。

嗨,我搜索了所有旧的答案,比如在2008年,我正在为新的浏览器创建Firefox插件,这样我就可以使用ECMA 5+。

我试图做一个开关,有一个块满足多个条件,如如果大于等于0&;&;<=3,如下所示:

1
2
3
4
5
6
7
switch (blah) {
     case 0, 1, 2, 3: //<<<<<<<< this here please
          //do this;
          break;
     default:
          ///do this
}

这只是一个基本的例子。

我希望多个值触发同一个案例。我该怎么做?

  • 问题是什么?
  • 你到底想达到什么目的
  • 有些问题不是问题……
  • THX Qantas,这个主题很不错,但是它没有Jeronimo提供的解决方案,但是它最好留在主题中,这样人们也可以看到这些方法。
  • @诺伊特:但那就像是一个if-else语句,就像我怎样写if (x >= 0 && x <= 3) {} else {}一样。
  • 是的,我只是把这个例子简化了很多。


这可能是你要找的。如果是,请更清楚地定义您的问题。

1
2
3
4
5
6
7
8
9
10
switch (x) {
   case 0:
   case 1:
   case 2:
   case 3:
   // do this
   break;
   default:
   // do this
}

另请参见交换机中的多个案例:

  • 啊哈!感谢您的快速回复!!我不能接受9分钟的独奏了,哈哈。这样我就可以回到我的节目了!谢谢!
  • 嘿,我选择了你的解决方案,杰罗尼莫在下面,但我不能选择两个解决方案。
  • 这真是个更好的答案。它应该被接受:developer.mozilla.org/en-us/docs/web/javascript/reference/&hellip;


有一种hacky开关样式允许您指定范围:

1
2
3
4
5
6
7
switch (true) {
    case blah >= 0 && blah <= 3:
        //do this
        break
    default:
        //do that
}

在这种情况下,它有时很有用。

也许它会做你想做的。

  • 哦,不行!这是有效的!jsfiddle.net/noitidart/x6u5w因为这是什么版本的javascript?
  • 不知道,我只是在某个地方看到了它,有着完全相同的反应:)
  • 啊,好的,谢谢你!:)