【问题标题】:Javascript change for loop variable from within the loop从循环内更改循环变量的 Javascript
【发布时间】:2014-01-01 21:02:07
【问题描述】:

我有一个这样的 for 循环

for (var i = 0; i < 100; i += 4) {
    // code with i;
}

我想在循环中将i 的值更改为某个值。我知道您可以在评估最终表达式后使用 continue 更改 i 的值,但是如果我想将 i 的值更改为更具体的值,例如 40?

这是我的尝试之一

loop:
for (var i = 0; i < 100; i += 4) {
    for (var i = 0; i <= 40; i++) {
        continue loop;
    }
}

有更好的方法吗?

【问题讨论】:

  • 你为什么不能给它分配你想要的值?毕竟这只是另一个变量。只需确保您没有将其设置为无限循环。
  • 我感觉这可能是 X/Y 问题。
  • 我知道我现在可以重新分配它。是的,这是我正在寻找答案的一个问题,以解决更大的问题。

标签: javascript variables for-loop continue


【解决方案1】:

直接更改 i 即可:

for (var i = 0; i < 100; i += 4) {
    i = 15000;
}

这会立即退出循环,但你可以做任何你想做的事情。

您应该阅读function scope 以了解这些东西的工作原理。 For 循环与函数有点不同,因为它们是一种语言结构,但同样的作用域理论也适用。

【讨论】:

  • 我不想在更改 i 值后退出循环。还有另一种方法吗?我去读一下函数作用域看看。
  • nvm 我明白为什么它会立即退出循环。因为 15000
【解决方案2】:

增量变量的scope 在循环块内始终可用,这允许您访问循环块内的增量变量。

for (var i = 0; i < 100; i += 4) {
    if (condition)  i = 40 ;
    /* put any condition to avoid the infinite loop and continue with your rest of code */
}

【讨论】:

  • 你应该添加一些条件以避免无限循环,
  • @cookiemonster 这绝对不是他必须在循环内做某事的完整循环
  • 是的,只是想确保那里的一些初学者没有运行代码并冻结他们的浏览器。 ;-)
  • 是的,我正在循环中做其他事情,但我只是卡在这部分。
  • 分享你的完整循环并告诉我们你想做什么
猜你喜欢
  • 1970-01-01
  • 2011-02-19
  • 1970-01-01
  • 2016-06-02
  • 2018-01-12
  • 2020-10-23
  • 1970-01-01
  • 2013-09-13
  • 1970-01-01
相关资源
最近更新 更多