Ich versuche, ein Quiz zu generieren, das drei zufällige Fragen aus einem Array von 6 anzeigen wird, wenn die Seite neu geladen wird.Wie 3 verschiedene Werte aus einem multidimensionalen Array in Javascript generiert werden
Die Quiz funktioniert, aber zeigt alle der Fragen in der gleichen Reihenfolge, und ich suche nur 3 zufällige Fragen
Der Code I bin mit haben, wie folgt:
var pos = 0, test, test_status, question, choice, choices, chA, chB, chC, correct = 0;
var questions = [
["Question 1", "1", "2", "3", "C"],
["Question 2", "X", "Y", "Z", "B"],
["Question 3", "4", "5", "6", "C"],
["Question 4", "A", "B", "C", "A"],
["Question 5", "7", "8", "9", "B"],
["Question 6", "M", "N", "O", "A"]
];
function get(x){
return document. getElementById(x);
}
function renderQuestion(){
test = get("test");
if(pos >= questions.length){
test.innerHTML = "You got " +correct+ " of "+questions.length+" questions correct";
get("test_status").innerHTML = "Test Completed";
pos = 0;
correct = 0;
return false;
}
get("test_status").innerHTML = "Question " + (pos+1) + " of " + questions.length;
question = questions[pos] [0];
chA = questions[pos][1];
chB = questions[pos][2];
chC = questions[pos][3];
test.innerHTML = "" +question+" <br>";
test.innerHTML += "<input type='radio' name ='choices' value ='A'> " +chA+"<br>";
test.innerHTML += "<input type='radio' name ='choices' value ='B'> " +chB+"<br>";
test.innerHTML += "<input type='radio' name ='choices' value ='C'> " +chC+"<br><br>";
test.innerHTML += "<button onclick='checkAnswer()' >Submit Answer</button>";
}
function checkAnswer(){
choices = document.getElementsByName('choices');
for (var i = 0; i < choices.length; i++) {
if(choices[i].checked){
choice = choices[i].value;
}
}
if (choice == questions [pos][4]) {
correct++;
}
pos++;
renderQuestion();
}
window.addEventListener("load", renderQuestion, false);
Wie Funktioniert das mit den Formularen? –
Dies ist nur die Logik, um zufällige Elemente aus dem Array zu erhalten. Sie müssen dann Elemente basierend auf einem formulierten Array erstellen. – Rajesh
Richtig ok, ich denke ich verstehe, danke –