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 Data Using Objects The Build an Object Challenge, Part 2 Solution

It doesn't seem to be printing out right

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(message);

Did I miss something?

3 Answers

check the end quote on your 2nd script tag

Emma Davis
Emma Davis
4,760 Points

Where is the 'students' array? I can't see it in your code yet you are trying to reference it's content and get the array length in your for loop.

Well, firstly you know I'm referring to this vid, right?: https://teamtreehouse.com/library/javascript-loops-arrays-and-objects/tracking-data-using-objects/the-build-an-object-challenge-part-2-solution

If you watch the video you know that the students array is in another js file that looks like this:

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'
  }
];

I'm trying to follow the video to a 't', and yet it's not coming out the way it's supposed to...

Just for good measure here's my index.html file:

<!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_reports.js></script>
</body>
</html>

I noticed that you have the secondary file named "student_reports.js". Reports is plural but in the viedo his example is singular. Perhaps, you saved your file as singular vs. plural?

I'm having trouble with mine too, using the exact code from the video and it won't print anything to the page. I checked the console and didn't get any errors.