Как сделать процентную вероятность выведения той или иной картинки из 2 массивов?
Есть 2 массива
const truePhotos = ['1 фото', '2 фото', '3 фото','4 фото',...'100 фото',]
const funnyPhotos = ['1 фото', '2 фото']
Делаю рандомное выведение картинки из первого массива
function getPhoto() {
return truePhotos[Math.floor(Math.random() * truePhotos.length)]
}
Теперь хочу реализовать в этой функции 10% шанс выведения кляксы - смешного фото)) То есть когда человек обращается к функции getPhoto() он с 10% вероятностью получал фото из массива funnyPhotos.
И желательно хотел бы сделать на будущее если будет, например 4 массива, у одного шанс 10% у другого 40% и т.д.
Совершенно не могу подступиться к решению этой идеи
Ответы (1 шт):
Автор решения: vlad9i2
→ Ссылка
Можно генерировать случайное число rand_num от нуля до 9, потом возвращать в соотвествии с вероятностями:
let rand_num = Math.floor(Math.random() * 10);
if(rand_num == 0)
return firstarray[Math.floor(Math.random() * firstarray.length)]
if(rand_num == 1 || rand_num == 2 || rand_num == 3 || rand_num == 4)
return secondarray[Math.floor(Math.random() * secondarray.length)];
return truePhotos[Math.floor(Math.random() * truePhotos.length)]