在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.
         }
      }
   }
}

就像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文件]

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


把它放在一个函数中,然后return


我对晚会有点迟,但以下是不使用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人群满意。 不利的一面是,内部循环需要在终止之前完成当前迭代,因此在某些情况下可能不适用。

链接地址: http://www.djcxy.com/p/6181.html

上一篇: Best way to break from nested loops in Javascript?

下一篇: What does the restrict keyword mean in C++?