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 trialDaniel Gzel
2,927 Pointsso I was working on this for some time. UNDEFINED
Hello, so I was working on this for some time. Figured out how to create new variables to store correct/incorrect answers then I have create for loop with display order. BUT... my code still printed out UNDEFINED, so I loaded up solution with hope of finding an answer, and I realized that Dave did it "slightly" different. I have changed most of my code but still there is the same problem :( please find code below, im giving up:
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 html = ""; var correct = []; var wrong = [];
function buildList(arr) { var listHTML = "<ol>"; for (var y = 0; y < arr.length; y+=1) { listHTML += "<li>" + arr[i] + "</li>" } listHTML += "</ol>" return listHTML; }
function print(message) { document.write(message); }
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>asd</h2>"; html += buildList(correct); html += "asdasd wrong"; html += buildList(wrong);
print(html);
1 Answer
Steven Parker
231,268 PointsThe loop is using "y" as the step variable, but the index into the array is using "i":
for (var y = 0; y < arr.length; y += 1) {
listHTML += "<li>" + arr[i] + "</li>"; // <-- try arr[y] instead
}