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 trialKeith Corona
9,553 PointsCode will not display
Even though I followed the resolution to this challenge and changed my code appropriately (to what I believe to be so), my code will not display. I am using Chrome and have been having display problems off and on throughout the day with these challenges and what not but even after clearing the cache, the code won't run properly. Any errors?
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 incorrect = [];
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>';
}
var 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 {
incorrect.push(question);
}
html = "You got " + correctAnswers + " question(s) right.";
html += "<h2>You got these questions right:</h2>";
html += buildList(correct);
html += "<h2>You got these questions wrong:</h2>";
html += buildList(incorrect);
print(html);
1 Answer
Dom Talbot
7,686 PointsHey Keith,
The following code should give you the solution I think your after.
I've added comments to help explain what I changed.
Solution code
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 incorrect = [];
function print(message) {
var outputDiv = document.getElementById('output');
outputDiv.innerHTML = message;
}
function buildList(arr) {
var listHTML = '';
// The third statement in your for loop should
// either be i++ or i += 1
for (var i = 0; i < arr.length; i += 1) {
listHTML += '' + arr[i] + '';
// If you want each question to appear on a new line
// you can uncomment the following line:
// listHTML += '' + arr[i] + '<br/>';
}
// As listHTML has already been defined above
// you should not add var again when referencing.
// By adding var here it creates a brand new listHTML variable,
// consequently ignoring the update you made in your for loop.
listHTML += '';
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 {
incorrect.push(question);
}
// You were missing a closing bracket
}
var html = "You got " + correctAnswers + " question(s) right.";
// To replicate how you showed the titles in your question,
// I've added additional line breaks and formatting.
html += '<br/><br/>';
html += '<b>You got these questions right:</b>';
html += '<br/>';
html += buildList(correct);
html +='<br/><br/>';
html += '<b>You got these questions wrong:</b>';
html += '<br/>';
html += buildList(incorrect);
print(html);
Original code - reformatted
I've added your original code as a comparison.
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 incorrect = [];
function print(message) {
var outputDiv = document.getElementById('output');
outputDiv.innerHTML = message;
}
function buildList(arr) {
var listHTML = '';
for (var i = 0; i < arr.length; i + 1) {
listHTML += '' + arr[i] + '';
}
var listHTML += '';
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 {
incorrect.push(question);
}
html = "You got " + correctAnswers + " question(s) right.";
html += "";
html += buildList(correct);
html += "";
html += buildList(incorrect);
print(html);
rydavim
18,814 Pointsrydavim
18,814 PointsI've changed your comment to an answer so that it may be voted on or marked as best answer.
Keith Corona
9,553 PointsKeith Corona
9,553 Pointsawesome explanation!