Как генерировать неповторяющиеся числа из диапазона JavaScript - PullRequest
0 голосов
/ 07 октября 2018

У меня есть массив с 10 элементами, я вызываю один случайный элемент, используя случайное число от 1 до 10, что использовать для создания случайного числа от 1 до 10, что больше не повторится, и когда будут использованы все 10,программа останавливается случайно? код

const num = () => Math.floor(Math.random() * 10);
  const postWord = () => {
    randomWord = word.innerText = words[num()].PL;
  }

  postWord();

  submit.addEventListener("click", function() {
    postWord();
  });

1 Ответ

0 голосов
/ 07 октября 2018

Вы когда-нибудь задумывались о перемещении элементов массива?

var range = 10; // global variable

const num = () => Math.floor(Math.random() * range);
  const postWord = () => {
    randomWord = word.innerText = words[num()].PL;
    for (var i=num(); i < range; i++) {
        var temp = words[i];
        words[i] = words[i+1];
        words[i+1] = temp;
    }
    range--;
  }

  postWord();

  submit.addEventListener("click", function() {
    if (range) {
      postWord();
    }
  });

Я не настолько знаком с JS, но, думаю, мой код может хотя бы продемонстрировать мою точку зрения.

...