javascript - jquery 在 switch 案例中使用范围?

标签 javascript switch-statement

开关盒通常是这样的

Monday: 
Tuesday: 
Wednesday: 
etc. 

我想使用范围。

from 1-12: 
from 13-19:
from 20-21:
from 22-30:

这可能吗?顺便说一下,我正在使用 javascript/jquery。

最佳答案

你可以尝试滥用 switch 掉落行为

var x = 5;
switch (x) {
    case  1: case 2: case 3: case 4: ...
        break;
    case 13: case 14: case 15: ...
        break;
    ...
}

非常冗长

或者你可以试试这个

function checkRange(x, n, m) {
    if (x >= n && x <= m) { return x; }
    else { return !x; }
}

var x = 5;
switch (x) {
    case checkRange(x, 1, 12):
        //do something
        break;
    case checkRange(x, 13, 19):
    ...
}

这会让你得到你想要的行为。我在 checkRange 的 else 中返回 !x 的原因是为了防止将 undefined 传递到 switch 语句时出现问题。如果您的函数返回 undefined(就像 jdk 的示例那样)并且您将 undefined 传递给开关,那么将执行第一种情况。 !x 在任何相等性测试下都保证不等于 x,这就是 switch 语句选择执行哪种情况的方式。

关于javascript - jquery 在 switch 案例中使用范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1616724/

相关文章:

c - 开关盒内部 - 变量定义相关

javascript - .preventDefault() 无法正常工作。 ('input', 函数{})

javascript - JavaScript 中的错误处理

c - 此 C 代码的哪一部分缺失或需要更改?

java - 如何保持多个按钮的无限循环?

c++ - 使开关繁重的功能更具可重用性

javascript - 碰撞检查循环在敌人生成后停止循环

javascript - SAPUI5 删除聚合绑定(bind)中的重复项

javascript - 我怎样才能并且应该从不同的文件加载我的 .js 文件以保持清洁?

c - switch 内嵌套 case 语句