Задать вопрос
@ozerovlife

Одно и тоже значение Math.random в переменной?

Всем привет. Начал изучать JavaScript и столкнулся с ошибкой в книге.
Вообщем создаю два массива:
var mass = ["I", "We",];
var mass2 = ["love", "hate", "not", "return"];

Далее пишу рандом для них:
var math = mass[Math.floor(Math.random() * 2)];
var math2 = mass2[Math.floor(Math.random() * 4)];

НО! если писать рандом в переменной, то как я понял, он один раз считает и записывает это число как значение переменной.
Далее складываю все:
var result = math + " " + math2;
Ии при каждом вводе result мне выдает одно и то же выражение вместо рандомных.
Но если в консоли каждый раз вводить так:
mass[Math.floor(Math.random() * mass.length)] + mass2[Math.floor(Math.random() * mass2.length)];
То все прекрасно работает.
Как это сделать, чтобы при каждом вводе result выводились разные комбинации.
5e1b6df712e85495697122.png
  • Вопрос задан
  • 279 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 2
GavriKos
@GavriKos
НО! если писать рандом в переменной, то как я понял, он один раз считает и записывает это число как значение переменной.

Все правильно поняли.
С result собственно то же самое.
Чтобы получить новое случайное значение - нужно заново сгенерировать случайные числа и сделать всю вот ту выборку.
Ответ написан
Комментировать
SeaInside
@SeaInside
15 лет пилю все эти штуки
Вы result высчитываете на странице один раз, а потом каждый раз выводите одно и то же.
В функцию запечатайте и вызывайте функцию, каждый раз генерируя новое значение:
function myFunc() {
  var mass = ["I", "We",];
  var mass2 = ["love", "hate", "not", "return"];
  var math = mass[Math.floor(Math.random() * 2)];
  var math2 = mass2[Math.floor(Math.random() * 4)];
  return math + " " + math2;
}
myFunc();
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы