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 trialRebecca Winterfield
Full Stack JavaScript Techdegree Student 5,993 PointsOnly the first student is printing.
The first student is printing, but the rest are not. Can someone please help me find out why? Thank you!
var message = "";
function print(message){
var outputDiv = document.getElementById('output');
outputDiv.innerHTML = message;
}
var student = [
{
name: "Peter",
track: "Full Stack",
achievements: 94,
points: 399
},
{
name: "Rebecca",
track: "Front End",
achievements: 300,
points: 2003
},
{
name: "Alejandro",
track: "Web Design",
achievements: 40,
points: 294
},
{
name: "Nina",
track: "Back End",
achievements: 469,
points: 39960
},
{
name: "Nick",
track: "JavaScript Dev",
achievements: 300,
points: 20940
}
];
for (var i = 0; i < student.length; i += 1 ) {
message = '<h2>Student: ' + student[i].name + '</h2>';
message += '<p>Track: ' + student[i].track + '</p>';
message += '<p>Achievements: ' + student[i].achievements+ '</p>';
message += 'Points: ' + student[i].points+ '</p>';
};
print(message);
1 Answer
Steven Parker
231,275 PointsI think you meant to say that only the last student ("Nick") is printing. And that's because the first line in your loop is a simple assignment ("=
") that replaces anything already in "message" with new contents.
If you change that into an addition assignment ("+=
", as used in the other lines) then the message will contain all student records.
Gustavo Winter
Courses Plus Student 27,382 PointsGustavo Winter
Courses Plus Student 27,382 PointsHello Steven Parker, depends on what she wants the variable Message holds, if you add the ("+=") message will holds all the student that have already passed through the loop and if you console.log(message) It'll show all the student at once.
But if Rebecca Winterfield wants to show every student indivudually, separated from the rest she need to keep the ("=").
By the way, you only print one student with the variable message, because it's outside the loop, you need to bring it inside the loop, so that every time the loop occurs the print(message) will execute with the student[i].
Steven Parker
231,275 PointsSteven Parker
231,275 PointsActually, moving the "print" into the loop will not make a difference unless you also change the way it works. It also uses a simple assignment to replace the contents of the output div.
But if you change that assignment into an addition assignment, then your suggestion would produce the same results as mine.
Rebecca Winterfield
Full Stack JavaScript Techdegree Student 5,993 PointsRebecca Winterfield
Full Stack JavaScript Techdegree Student 5,993 PointsThank you! Now it works.