我有一个switch语句是这样的:如何在switch语句的某些情况下执行多个代码块?
switch(a) {
case 0:
// do something
break;
case 1:
// do something else
break;
}
我想要做的就是执行的代码,这两个块时a == 2
例如。我想写这样的事情:
switch(a) {
case 0:
case 2:
// do something
break;
case 1:
case 2:
// do something else
break;
}
但显然,这是行不通的,因为第一个break语句结束整个switch语句。
我能想出在写辅助功能的唯一方法:
function case0() {
// do something
}
function case1() {
// do something else
}
switch(a) {
case 0:
case0();
break;
case 1:
case1();
break;
case 2:
case0();
case1();
break;
}
该解决方案似乎有点冗长和丑陋的我。有更好的方法来实现我想要的吗?
'switch'语句很复杂。你提出的是改变他们在基础层面上的工作方式。为什么不使用可以链接到函数的映射表?例如'{2:function(){...}}'。 – tadman
那么,我希望将它保存在'switch'中的主要原因是我已经在'switch'语句中构建了我的项目,我不想将它全部改写成别的东西,只是为了能够完成我所描述的内容。 – BoltKey
你想要什么,JavaScript可以做什么是两件不同的事情。你想屈从于现实还是花你的生命战斗呢?如果您愿意,欢迎您[通过TC39请求ECMAScript小组](https://tc39.github.io/process-document/)。有时候,我们认为最好的方法不会出现。学习,适应,继续前进。 – tadman