为了账号安全,请及时绑定邮箱和手机立即绑定

在JavaScript中打破嵌套循环的最佳方法是什么?

在JavaScript中打破嵌套循环的最佳方法是什么?

拉莫斯之舞 2019-08-14 17:37:58
在JavaScript中打破嵌套循环的最佳方法是什么?在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.          }       }    }}
查看完整描述

3 回答

?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

就像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


查看完整回答
反对 回复 2019-08-14
?
www说

TA贡献1775条经验 获得超8个赞

将其包裹在一个函数中然后只是return


查看完整回答
反对 回复 2019-08-14
?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

我有点迟到了,但以下是与语言无关的方法,不使用GOTO /标签或功能包装:

for (var x = Set1.length; x > 0; x--){
   for (var y = Set2.length; y > 0; y--)
   {
      for (var z = Set3.length; z > 0; z--)
      {
          z = y = -1; // terminates second loop
          // z = y = x = -1; // terminate first loop
      }
   }}

在好的方面,它自然流动,这应该取悦非GOTO人群。在缺点方面,内部循环需要在终止之前完成当前迭代,因此在某些情况下可能不适用。


查看完整回答
反对 回复 2019-08-14
  • 3 回答
  • 0 关注
  • 414 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信