2016-07-01 2 views
0

Я хочу генерировать случайное число между 1-100, но я только хочу генерировать эти числа один раз каждый раз. У меня есть цикл, который запускается 3 раза, чтобы запустить .Math, а затем вставить его в массив. Но я не хочу ситуации, когда он генерирует одно и то же число более одного раза.Создайте случайное число 4 раза без повторения Javascript?

Я поставил 21 в массив allAnswers [], поскольку это то, что останется неизменным. Есть ли способ генерации, а затем проверить этот массив, если это число существует, а затем снова запустить .math?

function buttonGenerator(){ 
    var allAnswers = [21], 
     randomizer = []; 

    // Generates 3 random answers 
    for(a = 0 ; a < 3; a++) { 
     wrongAnswers = Math.floor((Math.random() * 100) + 1); 
     allAnswers.push(wrongAnswers); 
    } 

    // Generates random buttons while inputting the correct and incorrect answers randomly 
    for(i = 0 ; i < 4; i++) { 
     var buttonArea = $("#answerOptions"); 
     input = $('<button class="col-xs-6 btn btn-primary"></button>'); 
     input.appendTo(buttonArea); 
    } 

    shuffle(allAnswers); 
    console.log(allAnswers); 
} 

buttonGenerator(); 

ответ

1

Используйте indexOf, чтобы проверить, если массив имеет значение перед нажатием: (! AllAnswers.indexOf (wrongAnswers))

if (allAnswers.indexOf(wrongAnswers) === -1) { 
    allAnswers.push(wrongAnswers); 
} 
+1

Вы бы не пойти, если проверить, не существует ли еще в массиве? –

+0

Вы правы, обновлено – JordanHendrix

+0

Отлично. Я вижу, что когда я рандомизируюсь таким образом, он толкает мой массив [21] из положения 0 [41, 44, 28, 21] Есть ли способ сохранить его в положении 0? –

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