数组重新循环以删除先前生成的数组数据集

时间:2019-02-08 06:39:51

标签: javascript arrays loops

当我尝试再次运行该函数时,我的文件在第一轮循环中工作正常。当我尝试使用该值进行匹配时,它会显示上一个循环的上一个值,然后显示正确的值。如果我一次又一次运行该函数,它将继续保持先前生成的随机值的值。

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];

  }

2 个答案:

答案 0 :(得分:1)

const循环中使用letvar替换for,以避免创建全局变量,并且--i在代码中{{1} 1}}也用于i++循环中。

答案 1 :(得分:0)

这是“ mathStar”的第一次出现吗?

如果这是您第一次使用mathStar,则意味着它是全局创建的,通常会引起混乱。在这种情况下,请查看this

仅此来看,似乎您没有重置“ mathStar”值。这样,每次第n次运行此循环时,使用mathStar.push(...)添加到“ mathStar”的值也会出现在值列表中。