Массив и random
Ребята такая проблема, есть массив:
let imgs = ['image1.png', 'image2.png', 'image3.png'] Перебираю его с помощью random: function randomImgs () { $image.src = imgs [Math.floor(Math.random()*imgs.length)] } Далее мне надо выполнить условие if/else, чтобы для каждой картинки выводился свой текст: function () { randomImgs () if ($image.src === 'image1.png') { $h1.textContent = 'Хорошо' } else if ($image.src === 'image2.png') { $h1.textContent = 'Очень хорошо' } else if ($image.src === 'image3.png') { $h1.textContent = 'Совсем хорошо' } Мой вариант не работает, не могу правильно задать условие для if и else if, голову сломала, пробовала даже так: if ($image.src === imgs['image1.png'])... if ($image.src == imgs[0])... Заранее спасибо! :victory: |
А зачем условия, ведь изображения можно хранить сразу с текстом к ним, в массиве объектов, а не массиве. Случайно, это по диапазону индексов этого массива. Далее просто извлекли готовое.
|
Точно. А сработает, если текст идет отдельным блоком?
|
Цитата:
var i = 1 //случайно полученный индекс;
const im1 = [
{image: '1.jpg', text: 'Text 1'},
{image: '2.jpg', text: 'Text 2'},
{image: '3.jpg', text: 'Text 3'}
],
im2 = [
['1.jpg', 'Text 1'],
['2.jpg', 'Text 2'],
['3.jpg', 'Text 3']
],
im3 = ['1.jpg', '2.jpg', '3.jpg'],
txt = ['Text 1', 'Text 2', 'Text 3'];
console.log(
im1[i].image + ' - ' + im1[i].text + '\n' +
im2[i][0] + ' - ' + im2[i][1] + '\n' +
im3[i] + ' - ' + txt[i]
)
Выбирайте любой способ, и любой из них, это лучше чем править вывод, вместо того, чтобы изменять входные данные. |
Спасибо, вроде все поняла, единственное теперь не понятно как добиться у переменной var i рандомного значения.
|
Как обычно, как и делалось, в чем проблема то?
function getRandom(max) {
return Math.floor(Math.random() * Math.floor(max));
}
var i = getRandom(im1.length);
|
Дошло) все получилось, спасибо.
|
| Часовой пояс GMT +3, время: 19:11. |