JavaScript JavaScript Loops, Arrays and Objects Tracking Multiple Items with Arrays Build a Quiz Challenge, Part 1 Solution

PhuQuy Pham
PhuQuy Pham
6,708 Points

My code isn't working and I don't know why

Why isn't the correctAnswers print out correctly?

var quiz = [ ['What is 1 + 1?', 2], ['What is 2 + 2?', 4], ['What is 3 + 3?', 6] ]; var correctAnswers = 0; var answer; var html;

function print (message) { document.write(message); }

for ( var i = 0; i < quiz.length; i += 1){ answer = prompt (quiz[i][0]); if (answer === quiz[i][1]){ correctAnswers += 1; }; }

html= ' you got' + ' ' + correctAnswers + ' ' + 'questions right.' print(html);

2 Answers

Steven Parker
Steven Parker
171,373 Points

You've stored your correct answers as numbers, but the "prompt" function returns a string. And the type-sensitive comparison (===) will always be false when the types don't match.

Use a normal comparison (==), or convert the input into a number.

PhuQuy Pham
PhuQuy Pham
6,708 Points

Thanks so much Steven.

Steven Parker
Steven Parker
171,373 Points

PhuQuy Pham — Glad to help. You can mark a question solved by choosing a "best answer".
And happy coding!