JS, как сделать, чтобы рандом не повторялся?
Пытаюсь реализовать игру, где выдается картинка и четыре варианта ответов, один из которых верный. Как написать или переписать функцию, чтобы рандомно выпадающая в поле field картинка не повторялась, пока не закончится основной массив с объектами actress? Я только обучаюсь, поэтому буду признательна, если опишете логику и пример решения как можно более простым языком.
function getStarted() {
let arr = [];
function random(max, count) {
while (arr.length < count) {
let j = (Math.floor(Math.random() * max));
if (!arr.includes(j)) {
arr.push(j);
}
}
}
random(actress.length, 4);
function getRandom () {
let rand = Math.floor(Math.random() * arr.length);
a = actress[arr[0]].name;
b = actress[arr[1]].name;
c = actress[arr[2]].name;
d = actress[arr[3]].name;
image = actress[arr[rand]].photo;
descr = actress[arr[rand]].name;
}
getRandom();
function beginning () {
firstBtn.innerHTML = a;
secondBtn.innerHTML = b;
thirdBtn.innerHTML = c;
fourthBtn.innerHTML = d;
field.innerHTML = `<img src=${image} alt=${descr}>`;
}
beginning();
}
start.addEventListener('click', () => {
getStarted();
});
Источник: Stack Overflow на русском