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 trialHabibur Rahman Dipto
8,496 Pointsif else problem
its not working.
var message = '';
var student;
var search;
function print(message) {
var outputDiv = document.getElementById('output');
outputDiv.innerHTML = message;
}
function getStudentReport( student ) {
var report = '<h2>Student: ' + student.name + '</h2>';
report += '<p>Track: ' + student.track + '</p>';
report += '<p>Points: ' + student.points + '</p>';
report += '<p>Achievements: ' + student.achievements + '</p>';
return report;
}
while ( true ) {
search = prompt("Search students recors: type a name [Jody] (or type 'quit' to end)");
if ( search === null || search.toLowerCase() === 'quit' ) {
break;
}
for (var i = 0; i < students.length; i += 1) {
student = students[i];
/* not working when search === student.name */
if ( search === student.name ) {
message = getStudentReport ( student );
print(message);
}
}
}
But when i change the search === student.name to students.name === search. its working. Can u explain why it not working at the first.
var message = '';
var student;
var search;
function print(message) {
var outputDiv = document.getElementById('output');
outputDiv.innerHTML = message;
}
function getStudentReport( student ) {
var report = '<h2>Student: ' + student.name + '</h2>';
report += '<p>Track: ' + student.track + '</p>';
report += '<p>Points: ' + student.points + '</p>';
report += '<p>Achievements: ' + student.achievements + '</p>';
return report;
}
while ( true ) {
search = prompt("Search students recors: type a name [Jody] (or type 'quit' to end)");
if ( search === null || search.toLowerCase() === 'quit' ) {
break;
}
for (var i = 0; i < students.length; i += 1) {
student = students[i];
/* working when student.name === search */
if ( student.name === search ) {
message = getStudentReport ( student );
print(message);
}
}
}
Andrew Robinson
16,372 PointsI've just tested both and they do both prompt for an input, I ran it in Google Chrome, try clearing your cache before running it also.
1 Answer
Andrew Robinson
16,372 PointsThe order of the if statement isn't the problem, I believe the problem might be that you're not making sure that both arguments are the same case before checking if they're equal.
Try changing the if statement to:
if (student.name.toLowercase() === search.toLowercase()) {
}
You did it correctly for quit just not for the student name.
Habibur Rahman Dipto
8,496 PointsHabibur Rahman Dipto
8,496 Pointsbut if u run the program.. the first 1 is not showing any prompt dialogue box. but the 2nd is showing