dru*_*mer 6 javascript switch-statement
开关箱通常都是这样的
Monday:
Tuesday:
Wednesday:
etc.
Run Code Online (Sandbox Code Playgroud)
我想使用范围.
from 1-12:
from 13-19:
from 20-21:
from 22-30:
Run Code Online (Sandbox Code Playgroud)
可能吗?顺便说一句,我正在使用javascript/jquery.
bar*_*ley 14
你可以尝试滥用开关掉落的行为
var x = 5;
switch (x) {
case 1: case 2: case 3: case 4: ...
break;
case 13: case 14: case 15: ...
break;
...
}
Run Code Online (Sandbox Code Playgroud)
这是非常冗长的
或者你可以试试这个
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):
...
}
Run Code Online (Sandbox Code Playgroud)
这可以让你获得你想要的行为.我!x在checkRange的else中返回的原因是为了防止在传入undefinedswitch语句时出现问题.如果您的函数返回undefined(如jdk的示例所示)并且您传入undefined交换机,则将执行第一个案例. 在任何!x相等x测试下都保证不相等,这就是switch语句选择执行哪种情况的方式.
小智 7
迟到了,但在搜索同一个问题的答案时,我遇到了这个帖子.目前我实际上使用的是开关,但方式不同.例如:
switch(true) {
case (x >= 1 && x <= 12):
//do some stuff
break;
case (x >= 13 && x <= 19):
//do some other stuff
break;
default:
//do default stuff
break;
}
Run Code Online (Sandbox Code Playgroud)
我发现这比一堆IF语句更容易阅读.
| 归档时间: |
|
| 查看次数: |
9930 次 |
| 最近记录: |