如何在javascript中返回到for循环的顶部

Posted

技术标签:

【中文标题】如何在javascript中返回到for循环的顶部【英文标题】:how to return to top of for loop in javascript 【发布时间】:2011-04-25 00:53:21 【问题描述】:

也许这是一个愚蠢的问题,但有没有办法返回到循环的顶部?

例子:

for(var i = 0; i < 5; i++) 

    if(i == 3)
        return;

    alert(i);

您对其他语言的期望是警报会触发 4 次,如下所示:

警报(0); 警报(1); 警报(2); 警报(4);

但是,当 i 为 3 时,该函数立即退出。什么给出了?

【问题讨论】:

你能举个“其他语言”的例子吗? 您认为哪些语言在循环中间返回会使循环继续?在我知道的任何语言中都不是这样。 C# 不会继续循环 - 一旦您执行 'return' 语句,函数会立即退出,就像在 javascript 中一样。 C# 还为您尝试完成的执行流程使用“继续”语句。 【参考方案1】:

使用continue 而不是return

示例: http://jsfiddle.net/TYLgJ/

for(var i = 0; i < 5; i++) 

    if(i == 3)
        continue;

    alert(i);

如果您想在此时完全停止循环,您可以使用break 而不是returnreturn 语句用于从正在执行的函数中返回一个值。

编辑: @epascarello 以下 cmets 提供的文档链接。

continue 的文档:https://developer.mozilla.org/en/JavaScript/Reference/Statements/continue return 的文档:https://developer.mozilla.org/en/JavaScript/Reference/Statements/return

【讨论】:

继续:developer.mozilla.org/en/JavaScript/Reference/Statements/… 返回:developer.mozilla.org/en/JavaScript/Reference/Statements/return @epascarello - 感谢您添加参考资料。 :o) 我猜我的也被否决了。反对者应该给出一个理由。【参考方案2】:

对于它的价值,你也可以给它们贴上标签:

OUTER_LOOP: for (var o = 0; o < 3; o++) 
  INNER_LOOP: for (var i = 0; i < 3; i++) 
    if (o && i) 
      continue OUTER_LOOP;
    
    console.info(o, ':', i);
  

输出:

0 : 0
0 : 1
0 : 2
1 : 0
2 : 0

【讨论】:

以上是关于如何在javascript中返回到for循环的顶部的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript-Runoob:JavaScript for 循环

如何打破递归函数内的 for 循环并在 Javascript 中返回?

JavaScript之实现单选复选菜单以及返回顶部实例

除非在Javascript中删除for循环,为什么interval函数不会执行

如何使用 django 创建基于 for 循环的灯箱库

JAVASCRIPT / REACT:为 for 循环中的每个元素返回 HTML