Как я могу избежать генерации одного и того же числа с помощью генератора случайных чисел, который я присваиваю двум переменным?

#javascript #random #numbers

#javascript #Случайный #числа

Вопрос:

 var randomDescriptor1 = descriptors[getRandomIndex(descriptors)];
  tagline1.innerText = randomDescriptor1;
  var randomDescriptor2 = descriptors[getRandomIndex(descriptors)];
  tagline2.innerText = randomDescriptor2;
  
 function getRandomIndex(array) {
  return Math.floor(Math.random() * array.length);
}
  

Я изменяю HTML-файл с помощью dom и хочу сгенерировать случайные дескрипторы в одном предложении. Я извлекаю из массива сохраненных строк, но иногда они дважды возвращают одно и то же слово в предложении. Как я мог избежать этого?

Комментарии:

1. Вы могли бы перетасовать массив и взять первые / последние 2 записи.

Ответ №1:

 const desc = Object.assign([],descriptors)
var randomDescriptor1 = getRandomDescriptor(desc);
  tagline1.innerText = randomDescriptor1;
var randomDescriptor2 = getRandomDescriptor(desc)
  tagline2.innerText = randomDescriptor2;

// you can delete have used item, you will always get a new one

function getRandomDescriptor(array) {
  const randomNum = Math.floor(Math.random() * array.length);
  const value = array[randomNum]
  array.splice(randomNum, 1)
  return value
}