Я что-то здесь делаю не так? - PullRequest
0 голосов
/ 12 июля 2020

Извините, если мой вопрос очень расплывчатый, так как я очень новичок в кодировании и задаю вопросы по кодированию, но я надеюсь, что кто-то понимает мою проблему, поскольку это очень расстраивает, потому что сообщение об ошибке не появляется, но я не 'Не знаю, что я делаю не так.

Итак, для контекста у меня есть перетасовка номеров массива.

let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

function shuffle(o) {
  for (let j, x, i = o.length; i; j = parseInt(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
  return o;
};
let random = shuffle(numbers);

Я пытаюсь создать генератор случайных чисел без повторения, и я собираюсь использовать их числа для генерации случайных изображений, соотносимых с числом. Итак, я установил для первого изображения первый индекс случайного

let setImgUrl = "img" + random[0] + ".jpg";

, и теперь я хочу сделать кнопку, которая меняет его на случайное [1], чтобы переключиться на следующее случайное изображение.

let calcNewImg;
if (random[0]) {
  calcNewImg = random[1]
} else if (random[1]) {
  calcNewImg = random[2]
}

он будет повторяться в случайном порядке [9] (последний индекс), и изображение будет выглядеть следующим образом

Img.setAttribute("src", "img/img" + calcNewImg + ".jpg");

, когда я нажимаю кнопку, чтобы переключиться на следующее изображение , он работает один раз и не работает в другое время без сообщения об ошибке. Надеюсь, я дал достаточно информации, чтобы кто-то мог понять, пожалуйста, не стесняйтесь спрашивать дополнительную информацию, если она нужна. я очень ценю эту помощь.

1 Ответ

0 голосов
/ 12 июля 2020

Я думаю, что вам нужно бесконечное l oop для генерации идентификаторов изображений примерно так

button=document.getElementById("button")
  showimg=document.getElementById("showimg")

  button.addEventListener("click",getimg)

let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
function shuffle(o) {
 for(let j, x, i = o.length; i; j = parseInt(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
 return o;
};
let random = shuffle(numbers);
var i=0
function getimg(){
    calcNewImg = random[i]
   i++
  if(i>=random.length){
   i=0
 }
   
   showimg.textContent= "img/img" + calcNewImg + ".jpg"

}
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <div id="showimg">###</div>
 <br>
  <button id="button">generate</button>

</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...