【问题标题】:Multple Criteria in a Single Case inside a Switch Statement [duplicate]Switch语句中单个案例中的多个条件[重复]
【发布时间】:2014-03-15 12:52:57
【问题描述】:

大家好,我搜索并找到了类似 2008 年的旧答案,我为新浏览器创建了 firefox 插件,因此我可以使用 ecma 5+。

我试图做一个让一个块满足多个条件的开关,例如 if >=0 &&

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

这只是一个基本的例子。

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

【问题讨论】:

  • 你到底想达到什么目的
  • 有些问题不是问题..
  • thx qantas,这个主题很好,但是它没有 Jeronimo 提供的解决方案,但最好留在主题中,这样人们也可以看到这些方法。
  • @Noit: 但这就像一个 if-else 语句,就像我可以写 if (x &gt;= 0 &amp;&amp; x &lt;= 3) {} else {} 一样。
  • 是的,我只是非常简化了这个例子。

标签: javascript switch-statement


【解决方案1】:

这可能是您正在寻找的。如果是,请更清楚地定义您的问题/问题。

switch (x) {
   case 0:
   case 1:
   case 2:
   case 3:
   // do this
   break;
   default:
   // do this
}

另见Multiple Cases in Switch:

【讨论】:

  • 啊太棒了!感谢您的超级快速回复!我不能接受 9 分钟的解决方案,哈哈。这让我可以马上回到我的程序!谢谢乔希!
  • 嘿,谢谢,我选择了你的解决方案和下面的 jeronimo,但它不允许我选择两个解决方案
  • 这确实是更好的答案。它应该被接受:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
【解决方案2】:

有一种 hacky 开关样式可让您指定范围:

switch (true) {
    case blah >= 0 && blah <= 3:
        //do this
        break
    default:
        //do that
}

它有时在 this 这样的情况下很有用。

也许它会做你想做的事。

【讨论】:

  • 哦,不可能!有用! jsfiddle.net/Noitidart/x6U5w 因为什么版本的 javascript 可以工作?
  • 不知道,我只是在某个地方看到它,并有完全相同的反应:)
猜你喜欢
  • 1970-01-01
  • 2021-03-22
  • 1970-01-01
  • 2015-06-21
  • 1970-01-01
  • 2015-12-06
  • 1970-01-01
  • 1970-01-01
  • 2014-01-03
相关资源
最近更新 更多