在 Javascript 中从 switch case 内部中断循环

新手上路,请多包涵

我必须使用什么命令,才能退出 for 循环,也可以从 //code inside 直接跳转到 //code after

 //code before
for(var a in b)
    {
    switch(something)
        {
        case something:
            {
            //code inside
            break;
            }
        }
    }
//code after

原文由 BASILIO 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 422
2 个回答

不幸的是,Javascript 不允许 break 通过多个级别。最简单的方法是通过创建匿名函数来利用 return 语句的强大功能:

 //code before
(function () {
    for (var a in b) {
        switch (something) {
        case something:
            {
                //code inside
                return;
            }
        }
    }
}());
//code after

这是有效的,因为 return 离开了函数,因此隐含地离开了循环,将你直接移动到 code after


正如评论中所指出的,我上面的答案是不正确的,并且可以进行多级 break ing,就像 Chubby Boy 的答案 一样,我已经投票赞成。

从七年后的角度来看,这是否 明智 有些值得怀疑。

原文由 lonesomeday 发布,翻译遵循 CC BY-SA 4.0 许可协议

您可以使用 label 。有一个带标签的声明并打破该标签。 outerLoop 是我在这里使用的标签。

 //code before
outerLoop:
for (var a in b) {
    switch (something) {
        case 'case1':
            //code inside
            break outerLoop;
    }
}
//code after

原文由 Chubby Boy 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题