2017-07-15 60 views
0

私はプロジェクトに取り組んでおり、推測ゲームです。正しい答えが常に左のものにならないように、ボタンの順序をランダムにしたい。だから、私のHTMLボタンのidsは "1"、 "2"、 "3"、 "4"と私はそれらのそれぞれにランダムなid(ex。1は4になります)を割り当てたいと思っていますbIはすでにmath.randomとmake 1-4それは重複する可能性があります。数字が重複しないようにするにはどうすればいいですか?ありがとう!HTML要素にランダムなIDを割り当てる方法は?

+0

あなたの試みを投稿することができますか? –

答えて

0

私はそれを作成したり、新しいランダムな番号を検索しない方が良いだろうと、思います。しかし、あなたの既存の配列をシャッフルします。そしてボタンにidを割り当てるよりも。

var ids = [1,2,3,4,5]; 
 
var shuffledIds = shuffle(ids); 
 
console.log(shuffledIds); 
 

 
function shuffle(array) { 
 
    var rand, index = -1, 
 
     length = array.length, 
 
     result = Array(length); 
 
    while (++index < length) { 
 
     rand = Math.floor(Math.random() * (index + 1)); 
 
     result[index] = result[rand]; 
 
     result[rand] = array[index]; 
 
    } 
 
    return result; 
 
}

+0

ありがとう – Carter4502

1

ボタンのIDの配列(ここでは1〜4を使用します)を作成し、配列からランダムな要素を取得し、それをボタンIDとして使用します。

whileループはボタンIDの配列を通り、1つをランダムに引き出し、配列から削除して再度選択することができません。ボタンIDの配列が空になるまでこのプロセスを繰り返します。

var buttons = [1, 2, 3, 4]; 
 

 
while (buttons.length) { 
 
    var buttonEl = document.createElement('button'); 
 
    var buttonId = buttons.splice(Math.floor(Math.random() * buttons.length), 1)[0]; 
 
    buttonEl.id = 'id-' + buttonId; 
 
    buttonEl.innerText = buttonId; 
 

 
    document.getElementById('buttons').appendChild(buttonEl); 
 
}
<div id="buttons"> 
 
</div>

関連する問題