2016-07-01 10 views
0

私は1-100の間の乱数を生成したいと思いますが、毎回それらの数値を生成したいだけです。私はループを3回実行して.Mathを実行し、それを配列にプッシュします。しかし、私は同じ数字を2回以上生成する状況を望んでいません。乱数を4回生成しないJavascript?

私はallAnswers []配列に21を入れました。これは一貫性を保つものです。その番号が存在する場合にその配列を生成して確認してから、再度.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配列をプッシュする前に値を持っているかどうかを確認します

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

(!allAnswers.indexOf(wrongAnswers))場合には行かないだろうアレイにまだ存在しないかどうかを確認する –

+0

あなたが正しいです、 – JordanHendrix

+0

を更新しました。私はそれをランダム化すると、配列[21]を0からずらすことがわかります。 [41,42,28,21] 位置0に保つ方法はありますか? –