2016-02-25 2 views
0

Я пытаюсь генерировать 40 случайных чисел от 0 до 8случайное число в диапазоне от 0 - 8 JavaScript

Это мой код -

<body> 
    <h1>This is a page for randomize number between 0 - 8 </h1> <br /> 

<button onclick="randomize()">Random number</button> 

<p id="Output"></p> 

<script> 
function randomize() { 

    var arr = [] 
while(arr.length < 40){ 
    var randomnumber=Math.floor((Math.random() * 8) + 1) 
    arr.push(randomnumber) 
} 
document.getElementById("Output").innerHTML = arr; 
} 
</script> 
</body> 

Я ожидаю 40 случайных чисел, который будет выводиться, как - -

4 
4 
5 
7 
8 
1 
5 
7 

Что я делаю неправильно кто-то может исправить меня, пожалуйста, и я также хочу, чтобы повторно sult будет выводиться следующей строкой!

Может кто-то помочь!

+0

Что делает ваш код сейчас? –

ответ

2

a) Если вы умножаетесь на 8, вы получаете номера от 0 до 7.

b) .innerHTML = arr.join('<br>') должен предоставить вам требуемый результат.

1

Ваш код уже работает, просто объявление разрывы строк:

<body> 
 
<h1>This is a page for randomize number between 0 - 8 </h1> <br /> 
 

 
<button onclick="randomize()">Random number</button> 
 

 
<p id="Output"></p> 
 

 
<script> 
 
function randomize() { 
 

 
    var arr = [] 
 
    while(arr.length < 40){ 
 
     var randomnumber=Math.floor((Math.random() * 9)) // 0-8 is 9 numbers 
 
     arr.push(randomnumber) 
 
    } 
 
    document.getElementById("Output").innerHTML = arr.join('<br>'); // Add line break between numbers 
 

 
} 
 
</script> 
 
</body>

EDIT: изменил случайный множитель от 8 до 9

0

Я думаю, вы должны смотреть на ваш случайный расчет и использование .join(), чтобы сделать число в отдельных строках.

1) Случайная формулировка должна быть Math.floor(Math.random()*(1+High-Low))+Low;. Поскольку вы умножаете Math.random() с 8, вы получите только 7 максимум. Однако вы добавляете +1 после случайного, вы все равно получите 8 в качестве максимального числа, но минимум станет равным 1. Вы разыгрываете от 1 до 8.

2) Если вам нужно эхо каждого номера в новой строке, вам необходимо присоединиться к массиву с помощью <br/>. Например. document.getElementIdBy('Output').innerHtml = arr.join('<br/>').

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