#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
}