JavaScript JavaScript Loops, Arrays and Objects Tracking Data Using Objects The Student Record Search Challenge Solution

I don't get why my code doesn't work.

I used the getelementbyid > -1 to see if the prompt is in the student list...

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) {
  student_name = prompt("please search the student's name")
  for (var i = 0; i < students.length; i += 1) {
  student = students[i];
    if ( students.name.indexOf(student_name) > -1 ) {
      message += '<h2>Student: ' + student.name + '</h2>';
      message += '<p>Track: ' + student.track + '</p>';
      message += '<p>Points: ' + student.points + '</p>';
      message += '<p>Achievements: ' + student.achievements + '</p>';
    } else {
      student_name = prompt("please search the student's name")
    }
  }
}

1 Answer

Gabriel Pierce-Lackey
MOD
Gabriel Pierce-Lackey
Treehouse Moderator 10,992 Points

I think you mean student instead of students for the index of. Like student.name.indexOf(student_name). Outside of that, it looks like you are running an infinite while loop. True will always be true so nothing will stop that. You are also not printing the message to the page with the print function made.