前提・実現したいこと
jsで4択のクイズを表示させるものを作りたいです。
乗せたコードではだいぶカットしてありますが、quizDataの中身を順番に表示させることはできたのですが、データの中身をランダムで表示させたいと思っております。
色々調べたのですが、var a = Math.floor( Math.random() * 4 ) を使おうと思ったのですが、うまく使いこなせません。
どうすればランダム表示させることができるでしょうか?
コード
JavaScript
1var quizData = [ 2 {"question": "1+1", "choices": ["1", "2", "3", "4"], "correct": "2"}, 3 {"question": "2+2", "choices": ["2", "3", "4", "5"], "correct": "4"}, 4 {"question": "3+3", "choices": ["3", "4", "5", "6"], "correct": "6"}, 5 {"question": "4+4", "choices": ["4", "5", "6", "8"], "correct": "8"} 6] 7 8//質問作成 9 const createQst = () => { 10 let choices = quizData[turn].choices; // 今の順番の質問の配列を作る 11 let choicesHtml = ""; // ここに格HTMLのラジオボタンを⼊れる 12 13 // クイズ選択のラジオボタンを作る 14 for (let i = 0; i < choices.length; i++) { // 格配列の値に対して、HTMLのラジオボタンを作る。インデックスに対した値を⼊れる。 15 choicesHtml += "<input type='radio' name='quiz" + turn + "' id='choice" + (i + 1) + "' value='" + choices[i] + "'>" + " <label for='choice" + (i + 1) + "'>" + choices[i] + "</label><br>"; 16 } 17 18 // HTMLに質問を⼊れる 19 question.textContent = "No." + (turn + 1) + " " + quizData[turn].question; 20 21 // 上で作ったラジオボタンをHTMLに⼊れる 22 choice.innerHTML = choicesHtml; 23 24 // ⼀番⽬の質問のボタン名を作る 25 if (turn === 0) { 26 submit.textContent = "Submit"; 27 } 28 } 29
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。