2010-08-24 2 views
0

Мне нужно создать 2D-массив для некоторой работы POC.Создайте javascript 2D массив инкрементных значений от 1 до 1000 и второе значение случайное число от 1 до 50

Первое значение массива должно идти в единичных приращений между значениями от 1 до 1000, а второе значение должно быть случайное число из значений 1 до 50.

+1

Сделайте снимок, и мы поможем вам, когда вы застрянете. –

+0

Я здесь: var a = []; для (var i = 0; i <1000; i ++) { var randNum = Math.floor (Math.random() * 51); var a = [i, randNum]; } Так почти правильно. – RyanP13

ответ

3
var array = []; 
for (var i = 1; i <= 1000; i++) 
{ 
    array.push([i, 1 + Math.floor(Math.random() * 50)]); 
} 

объяснить, как мы в конечном итоге со случайным числом между 1 и 50:

Math.random() генерирует случайное число с плавающей точкой r, где 0 ≤ r < 1. Таким образом, умножение, что на 50 приведет к ряду s где 0 ≤ s < 50. Затем мы используем Math.floor(), который округляет десятичное число до ближайшего целого (так что результат будет целым числом от 0 до 49 включительно). Добавление 1 к, который даст желаемый результат - случайное целое число от 1 до 50.

+0

Это генерирует синтаксическую ошибку? – RyanP13

+1

@ Ryan извините, я исправил его. Это то, что происходит, когда я кодирую текстовое поле во время работы на нескольких языках одновременно;) –

1
var array = []; 
for (var i = 1; i <= 1000; i++) 
{ 
    array.push([i, Math.ceil(Math.random() * 50)]); 
} 

Лично я предпочитаю использовать Math.ceil и иметь его круглый вверх, а не вниз, вокруг него , а затем добавить один.

Смежные вопросы