Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Заполнить массив случайными числами (https://javascript.ru/forum/misc/73992-zapolnit-massiv-sluchajjnymi-chislami.html)

LEXAdesigns 03.06.2018 21:04

Заполнить массив случайными числами
 
Сразу оговорюсь, что я совсем начинающий. Нашёл несколько реализаций, но подходящей не обнаружил.
Задача такая: заполнить массив случайными числами вида Math.round( Math.random() * 100 ).

Вот, наваял такое, но не работает :(

var arr2 = [];
for ( i = 0; i < 20; i++ ) {
	var a = Math.round( Math.random() * 100 );
	var arr2 = arr2.push(a);
	document.write( '<br>' + arr2);
}


Выводит единицу.
Я понимаю это так: объявляем массив, потом перебором 20 раз пушим случайное число в массив. Но не работает так :(
Кто-нибудь может просветить неразумного?

Заранее благодарю!

рони 03.06.2018 21:11

Цитата:

Сообщение от LEXAdesigns
var arr2 = arr2.push(a);

:-?

рони 03.06.2018 21:12

LEXAdesigns,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

LEXAdesigns 03.06.2018 21:27

Извиняюсь, код поправил

LEXAdesigns 03.06.2018 21:34

Цитата:

Сообщение от рони (Сообщение 486579)
:-?

упс :(
Спасибо огромное!

Вот так записал:
var arr2 = [];
for ( i = 0; i < 20; i++ ) {
	arr2.push( Math.round( Math.random() * 100 ));
} document.write( '<br>' + arr2 );

рони 03.06.2018 21:45

Цитата:

Сообщение от LEXAdesigns
Вот так записал:

на всякий случай ...
var arr2 = [], i;
или так
for ( var i = 0; i < 20; i++ )

LEXAdesigns 03.06.2018 22:20

Цитата:

Сообщение от рони (Сообщение 486583)
на всякий случай ...
var arr2 = [], i;
или так
for ( var i = 0; i < 20; i++ )


А, ну да, переменную объявить :)
Спасибо! :thanks:

LEXAdesigns 03.06.2018 23:53

Хочу ещё одно узнать.
Из массива выше надо было найти минимальное и максимальное значение. Смастерил, но опять не работало - там, где Math.max(arr) — выдавало NaN, хотя в массиве номера, и если ввести значения в скобках явно, то всё работало. Нашёл здесь на форуме запись вида Math.max(...arr) — и всё заработало!
Вопрос: что значит это троеточие?

var arr = [];
for ( var i = 0; i < 20; i++ ) {
	arr.push(Math.round( Math.random() * 100 ));
} 
document.write( '<br>' + arr + '<br>' );
document.write( '<br>' + Math.max(...arr) + '<br>' );
document.write( '<br>' + Math.min(...arr) + '<br>' );


Спасибо!

рони 04.06.2018 00:16

Цитата:

Сообщение от LEXAdesigns
что значит это троеточие?

Деструктуризация #оператор-spread

рони 04.06.2018 00:21

Цитата:

Сообщение от LEXAdesigns
где Math.max(arr) — выдавало NaN

метод-apply


Часовой пояс GMT +3, время: 00:56.