Массив и 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:53. |