Hai Kai,
Zwei Arrays, nur verbunden über den Array-Index, was bei größeren Arrays etwas fehlerträchtig sein kann, z.B. wenn man einen Satz zwischendrin einfügen möchte.
Ich würde es eher so machen:
[...]
oder so:
var richtige = 0, i;
var daten = [
["frage1", "antwort1"],
["frage2", "antwort2"],
["frage3", "antwort3"],
["frage4", "antwort4"]
];for (i = 0; daten[i]; i++) {
richtige += +(daten[i][1] == prompt(daten[i][0],''));
}
alert(richtige);
Ja, so würde ich es für größere Datenmengen auch machen. Das hat auch den Vorteil, dass man das daten-Array leicht umstellen kann, z.B. mit einem Zufallsalgorithmus.
Auch der Vergleich mit dem prompt ist ja so nicht wirklich zu gebrauchen. Wen man z.B. die frage2 mit "Antwort2" beantwortet statt mit "antwort2", das ist das schon falsch... ziemlich kleinlich, würde ich sagen.
Leider sind arrays recht langsam, vor allem im IE. Ich wollte mal testweise ein Array mit 1 Million leerer Objekte füllen. FF oder Opera machen das glaub' in ein paar hundert Millisekunden, bei IE war die Zeit nicht messbar, weil der nach einer Weile meint, das Script habe vielleicht einen Fehler und dann fragt er, ob man vielleicht abbrechen will... Nö, ich wollte eigentlich nur das Array befüllt haben, aber wenn er das nicht packt, dann doch lieber abbrechen, Browser schließen und seine Existenz möglichst vergessen oder mindestens alle Gedanken an ihn schnell verdrängen ;-)
Gruß, Don P