Переопределение массива для удаления предыдущего набора сгенерированных данных массива - PullRequest
0 голосов
/ 08 февраля 2019

Мой файл отлично работает в первом цикле цикла, когда я пытаюсь снова запустить функцию.Он показывает предыдущее значение предыдущего цикла, когда я пытаюсь использовать значение для сопоставления и после которого он показывает правильное значение.Если я запускаю функцию снова и снова, она продолжает удерживать значение предыдущего сгенерированного случайного значения.

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 голосов
/ 08 февраля 2019

Это первое появление "mathStar"?

Если это первое место, где вы используете mathStar, это означает, что он создается глобально, что обычно приводит к путанице.В этом случае взгляните на this .

Глядя только на это, кажется, что вы не сбрасываете значение «mathStar».Таким образом, каждый раз, когда вы запускаете этот цикл в n-й раз, значения, добавленные в «mathStar» с помощью mathStar.push (...), также появляются в списке значений.

0 голосов
/ 08 февраля 2019

Замените, используя const и let для var в цикле for, чтобы избежать создания глобальных переменных, и --i может привести к непредвиденным результатам в коде, где i++ также используется в цикле foor.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...