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 trialCarlos Lantigua
5,938 PointsTrying to print out array of objects I get [object Objects]
So I seem to have terrible luck and spend more time fixing code then writing it haha. I'm following along with the video after making my own to see how he did it differently and i keep having this issue even though I've checked it over and over. When trying to print to the DOM all I get is [object Object]. Im going to print my code as is along with the src links for the js.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Students</title> <link rel="stylesheet" href="css/styles.css"> </head> <body> <h1>Students</h1> <div id="output">
</div> <script src="js/students.js"></script> <script src="js/student_report.js"></script> </body> </html>
//student.js Array of Objects information var students = [ { name: 'Dave', track: 'Front End Development', achievements: 158, points: 14730}, { name: 'Jody', track: 'iOS Development with Swift', achievements: '175', points: '16375' }, { name: 'Jordan', track: 'PHP Development', achievements: '55', points: '2025' }, { name: 'John', track: 'Learn WordPress', achievements: '40', points: '1950' }, { name: 'Trish', track: 'Rails Development', achievements: '5', points: '350' } ];
//student_report.js prints out the list from inside the student array var message = ''; var student;
function print(message) { var outputDiv = document.getElementById('output'); outputDiv.innerHTML = message; }
for (var i = 0; i < students.length; i += 1) { student = students[i]; message += '<h2>Student: ' + student.name + '</h2>'; }
print(student);
1 Answer
Antonio De Rose
20,885 Pointsvar students = [
{
name: 'Dave',
track: 'Front End Development',
achievements: 158,
points: 14730
},
{
name: 'Jody',
track: 'iOS Development with Swift',
achievements: '175',
points: '16375'
},
{
name: 'Jordan',
track: 'PHP Development',
achievements: '55',
points: '2025'
},
{
name: 'John',
track: 'Learn WordPress',
achievements: '40',
points: '1950'
},
{
name: 'Trish',
track: 'Rails Development',
achievements: '5',
points: '350'
}
];
var message = '';
var student;
function print(message) {
var outputDiv = document.getElementById('output')
outputDiv.innerHTML = message;
}
for (var i = 0; i < students.length; i += 1) {
student = students[i];
message += '<h2>Student: ' + student.name + '</h2>';
}
print(student); //you are obviously printing an object, cause student is an object
//every time it runs through the loop, it would add one single object
//containing name, track, achievements, points per student
//which is an object, code is doing right as expected
//should you be wanting to print(message)
Carlos Lantigua
5,938 PointsCarlos Lantigua
5,938 Pointsugghh, I didn't know it was going to come out so ugly.. here's the snapshot https://w.trhou.se/hna5jmuwja
sorry.