Рандом в js (Math.Random())

134
09 ноября 2019, 12:40

Есть код

function randomNum(a, b, N){ 
	var arr =[]; 
	var rand; 
	for (i = 0; i <= N; i++) { 
		rand = Math.random() * (b-a) + a; 
		arr.push(rand + '\n'); 
	} 
	arr.sort(numeric); 
	alert (arr); 
}

Пользователь вводит начало и конец промежутка, а так же количество чисел, которые нужно рандомно получить с этого промежутка. Эти числа в процессе цикла записываются в массив, потом все сортируется по порядку возрастания (отдельная функция), и в итоге выводится массив. При границах 1-10, 1-20 и т.д. Все хорошо. Но если начальную границу с 1 изменить, к примеру, на 20 (20-30, на пример), будет выводится массив с числами от 1-10 (логика такая, что между 20 и 30 расстояние 10, вот он и выводит числа от 1 до 10).

Можно сделать так, чтобы выводились числа из промежутка (из 20-30, к примеру, 21,..... и т.д.)

Answer 1

А-а-а. Все понятно. Я увидел сквозь монитор, как Вы вызываете эту функцию:

Вы передаете туда строки.

function randomNum(a, b, N) { 
  var arr = []; 
  for (i = 0; i < N; i++) { 
    arr.push(Math.random() * (b - a) + a); 
  } 
  arr.sort((n1, n2) => n1 - n2); 
  return arr; 
} 
 
console.log(randomNum(20, 30, 5)); 
console.log(randomNum("20", "30", 5));

Обратите внимание: во втором массиве все элементы - строки, а не числа, и все заканчиваются на "20".

function randomNum(a, b, N) { 
  // !!! 
  a = +a; 
  b = +b; 
  N = +N; 
  // !!! 
  var arr = []; 
  for (i = 0; i < N; i++) { 
    arr.push(Math.random() * (b - a) + a); 
  } 
  arr.sort((n1, n2) => n1 - n2); 
  return arr; 
} 
 
console.log(randomNum(20, 30, 5)); 
console.log(randomNum("20", "30", 5));

READ ALSO
Почему не работает метод в JavaScript? [дубликат]

Почему не работает метод в JavaScript? [дубликат]

На данный вопрос уже ответили:

133
Front End, Back End, Website. Прослушивание музыки на сайте

Front End, Back End, Website. Прослушивание музыки на сайте

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

162
Возможно ли сохранять в localStorage динамически добавляемые input, а после перезагрузки страницы возвращать их вместе с value?

Возможно ли сохранять в localStorage динамически добавляемые input, а после перезагрузки страницы возвращать их вместе с value?

Представьте, что есть плюс нажимая на который вставляется inputТаких input можно вставить сколько угодно (пусть будет 30 штук)

133