Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

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

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
229,732 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.

Thanks so much Steven.