Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

JavaScript

Mark Libario
Mark Libario
9,003 Points

Why isn't it printing on the page? Student Search Challenge part 2

I just made it simple for now so that I can understand how everything works, but idk why it isn't printing properly.

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

var message = '';
var student;

function print(message)
{
  var outputDiv = document.getElementById('output');
  outputDiv.innerHTML = message;
}
while (true)
{
 var searchInput = prompt("Search a student name in the database or type 'quit' to exit the program");

  if ( searchInput === null || searchInput.toLowerCase () === "quit")
  {
   break; 
  }

  for (var i = 0; i < students.length; i ++)
  {
    student = students[i]
    if (students.name === searchInput.toLowerCase ())
    {
     print (student.name + " is here."); 
    }
    else{
     print (student.name + " is not here."); 
    }
  }
}

1 Answer

Steven Parker
Steven Parker
221,293 Points

I see two major issues at first glance:

In print, use "+=" to show all prints instead of just the last:

  outputDiv.innerHTML += message;

When comparing names, both sides need to be lower case to match. Also, you wrote "students" (plural) instead of "student" (singular):

    if (student.name.toLowerCase() === searchInput.toLowerCase())

You have a little work to do on the logic also, but this should get you going again.