打破Javascript中嵌套循环的最佳方式是什么?

//Write the links to the page.
for (var x = 0; x < Args.length; x++)
{
   for (var Heading in Navigation.Headings)
   {
      for (var Item in Navigation.Headings[Heading])
      {
         if (Args[x] == Navigation.Headings[Heading][Item].Name)
         {
            document.write("<a href=\"" 
               + Navigation.Headings[Heading][Item].URL + "\">" 
               + Navigation.Headings[Heading][Item].Name + "</a> : ");
            break; // <---HERE, I need to break out of two loops.
         }
      }
   }
}

推荐答案

就像Perl一样,

loop1:
    for (var i in set1) {
loop2:
        for (var j in set2) {
loop3:
            for (var k in set3) {
                break loop2;  // breaks out of loop3 and loop2
            }
        }
    }

如EMCA-262第12.12节所定义.[MDN Docs]

与C不同,这些标签只能用于continuebreak,因为Javascript没有goto.

Javascript相关问答推荐

使用JavaScript/PHP将二维码保存为服务器端的图像

为什么有些库公开了执行相同任务的方法,但每个方法都处于同步/同步上下文中?

如何提取Cypress中文本

TypScript界面中的Infer React子props

Redux工具包查询(RTKQ)端点无效并重新验证多次触发

if/else JavaScript中的条件行为

如何将Map字符串,布尔值转换为{key:string;value:bo布尔值;}[]?<>

我的服务工作器没有连接到我的Chrome扩展中的内容脚本.我该怎么解决这个问题?

无法从NextJS组件传递函数作为参数'

如何在bslib nav_insert之后更改导航标签的CSS类和样式?

还原器未正确更新状态

PDF工具包阿拉伯字体的反转数字

如何在ASP.NET JavaScript中使用Google Charts API仅对绘制为负方向的条形图移动堆叠条形图标签位置

环境值在.js文件/Next.js中不起作用

DOM不自动更新,尽管运行倒计时TS,JS

向数组中的对象添加键而不改变原始变量

为什么云存储中的文件不能公开使用?

如何在Press上重新启动EXPO-AV视频?

如何用javascript更改元素的宽度和高度?

在Vercel中部署Next.js项目时获取`ReferenceError:未定义文档`