对于循环行为

For Loop Behaviour

本文关键字:循环 于循环      更新时间:2023-09-26

这个问题是关于Javascript for loops的,我一直有一些奇怪的行为。

我的 For 循环目前如下所示:

var UnitAmount = 2;//(value verified, yet not declared like this)
var DamageAmount = [1,3];//(value verified, yet not declared like this)
function forcerefresh () {
  for( i=0 ; i < UnitAmount ; i++ ) {
  //(10 lines of Stuff)
var check = 0;
    for (c = 0; c < DamageAmount[i] ; c++ ) {
      debug[0] = damage[i][c].getElementsByClassName("writedamage")[0];
      debug[1] = damage[i][c];
      debug[2] = unit[i];
      check = check + 1;
      console.info("Unit:",i,"Loop:",c,"Debug:",debug,"Check:",check, "Race:",unitrace[i], unit[i].dataset.race);
      alert("Debug:"+ debug );
      damageCalc(damage[i][c].getElementsByClassName("writedamage")[0],damage[i][c],unit[i]);
    }
  }
}

在这里,已经添加了调试、警报、检查和控制台写入调用以尝试查找问题 - 我在这里得到了一个无限循环。

控制台中的输出 im 显示,虽然 i 常量按预期行走,但 c 迭代计数从 0 开始,跳到 2,然后保持 2 - 由于 DamageAmount[1] = 3,这会产生无限循环。在 c 可能停留在值 2 的地方,检查值确实会向上遍历迭代。

至于涉及的变量数量,我已经用控制台一次又一次地检查了,所有变量都已定义,以及我预期的值。代码位于 http://age-of-wonders-3.wikia.com/wiki/MediaWiki:Units.js,但如果有任何部分需要,我当然会在这里发布。

任何帮助不胜感激!

尝试在数组上使用 for of.forEach