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 2 Solution

Carey Chan
Carey Chan
1,319 Points

I copied the same code as the instructor, but browser freezes up and unclickable when I preview my code?

As hard as this challenge is for me already, I followed this video line for line as what David wrote. Whenever I preview my code, the prompt questions do show up and I am available to answer the questions. But after I answer the 3rd question, nothing prints to my browser and all of a sudden everything freezes up like I'm stuck in an infinite loop that is causing everything to crash. PLEASE HELP! I cannot debug what is wrong. Following these challenges get me lost pretty easily.

var questions = [
  ['How many states are in the United States?', 50],
  ['How many continents are there?', 7],
  ['How many legs does an insect have?', 6]
];
var correctAnswers = 0;
var question;
var answer;
var response;
var correct = [];
var wrong = [];

function print(message) {
  var outputDiv = document.getElementById('output');
  outputDiv.innerHTML = message;
}

function buildList(arr) {
  var listHTML = '<ol>';
    for ( var i = 0; 1 < arr.length; i += 1) {
      listHTML += '<li>' + arr[i] + '</li>';
    }
    listHTML += '</ol>';
    return listHTML;
}

for (var i = 0; i < questions.length; i += 1) {
  question = questions[i][0];
  answer = questions[i][1];
  response = prompt(question);
  response = parseInt(response);
  if (response === answer) {
    correctAnswers += 1;
    correct.push(question);
  } else {
    wrong.push(question);
}
}

html = "You got " + correctAnswers + " question(s) right."
html += '<h2>You got these questions correct:</h2>';
html += buildList(correct);
html += '<h2>You got these answers wrong.</h2>';
html += buildList(wrong);
print(html);

3 Answers

mmm, in function buildList() double check the condition of the for-loop. You have "1 < arr.length", I suppose there should be "i". It is the first thing I saw, though I didn't check the code.

Under your buildList function, you wrote 1 < arr.length instead of i < arr.length. This is most likely your issue.

Carey Chan
Carey Chan
1,319 Points

Wow. Thank you guys! I was looking up and down the code for a whole hour not knowing what was wrong!

No problem! I have definitely typed 1 instead of i on more than one occasion.

Sure! I've made tons of typos like this. The worse part - I keep doing that)