阵列RELOOP以去除前一组产生阵列数据的

问题描述 投票:2回答:2

当我尝试重新运行功能我的文件工作在第一轮循环就好了。这表明,当我尝试使用要匹配的值后,它显示了正确的值前一个循环的前值。如果我一次又一次地运行功能,它一直持有到以前生成的随机值的价值。

for (var i=0; i<9; i++)
  {
    var ranD = Math.floor(Math.random()*33);

    if (mathStar.indexOf(ranD)== -1) {
     mathStar.push(ranD);
     item[i].innerHTML = mathStar[i];
      }
      else {
        i--;
      }
      itemVal[i].value = mathStar[i];

  }
javascript arrays loops
2个回答
1
投票

使用const环路内的let varfor替代,以避免创建全局变量和--i可以在那里i++也是在foor循环使用的代码中有意想不到的效果。


0
投票

这是“MathStar的”第一次出现?

如果这是你使用了MathStar的首位,这意味着它被全球范围内创建这通常导致混乱。在这种情况下,看看this

看着眼前这个,似乎你不重置“了MathStar的”价值。这样一来,你运行这个循环第n次的任何时间,值已添加到“了MathStar的”使用mathStar.push(...)也出现在值列表。

© www.soinside.com 2019 - 2024. All rights reserved.