Как сделать что-то случайное в функции? - PullRequest
1 голос
/ 30 мая 2020

У меня здесь есть функция с некоторыми изображениями:

function rain() {
    ctx.drawImage (image1, x, y, 100, 50);
    ctx.drawImage (image2, x, y, 100, 50);
    ctx.drawImage (image3, x, y, 100, 50);
    ctx.drawImage (image4, x, y, 100, 50);
}

Как сделать так, чтобы эта функция произвольно выбирала одно из этих изображений при вызове?

Ответы [ 2 ]

4 голосов
/ 30 мая 2020

Вы должны поместить свои изображения в массив, а затем выбрать случайный индекс массива.

function randomImage() {
  const images = [
    image1,
    image2,
    image3,
    image4,
  ];
  // Pick an index at random from the images array. Math.rand returns
  // a random number between 0 and 1, multiplying that by the length
  // of the images array, gets a number between 0 and the length of the
  // array, and flooring it makes it into an integer.
  const randomIndex = Math.floor(Math.rand() * images.length);
  return images[randomIndex];
}
0 голосов
/ 30 мая 2020

Мне кажется неудобным заниматься математикой, когда я хочу иметь дело со случайностью, поэтому я использую Rando. js, чтобы сделать такие вещи простыми и удобочитаемыми.

var images = ["one", "two", "three", "four"];

console.log( rando(images).value );
<script src="https://randojs.com/1.0.0.js"></script>

Если вы хотите использовать этот код, все, что вам нужно знать, это то, что источники тегов script в функции rando, и вы готов к использованию сразу. Просто поместите тег скрипта в заголовок вашего документа HTML. Это просто, но если вам нужно узнать больше, вы можете проверить примеры на сайте или репозиторий github .

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