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

Jesse Fister
Jesse Fister
11,968 Points

unexpected end of input

Not sure what is wrong with my code as it matches Dave's code (from what I can see). When I open up the console it says "Syntax error: Unexpected input" on js line 1

Below is my actual code if anyone has a suggestion. Thanks!

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; i <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 questions wrong:</h2>';
  html += buildList(wrong);
print(html);
Dave McFarland
Dave McFarland
Treehouse Teacher

Hey Jesse Fister

To put code into a forum post use triple back ticks -- ``` — around the code. I fixed your code here, but in the future here's a forum discussion that describes how to add HTML, CSS, JavaScript or other code to the forum: https://teamtreehouse.com/forum/posting-code-to-the-forum

3 Answers

Dave McFarland
STAFF
Dave McFarland
Treehouse Teacher

HI Jesse Fister

The problem is with this function:

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

There is a missing closing bracket -- } -- at the end of the function. It should be this:

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

I'm not sure if it's a copied text issue but the formatting here is messed up:

for (var i = 0; i ' + arr[i] + '

'; }

I'm guessing it should be something like this?

for (var i = 0; i < arr.length; i++) {
  listHTML += arr[i] + "\n";
}
Jesse Fister
Jesse Fister
11,968 Points

Thanks Dave! Also, I'll be sure to add the code with the three back ticks moving forward when posting to the forum.