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 trialCaroline olijve
Courses Plus Student 14,499 PointsUsing my getStudentReport-function introduces a problem
My student-search is working as it should, however when I try to use the getStudentReport instead of a string variable in the loop the program will only return the details of the last name that was entered, does anyone know why this is , and how to fix it ? Thanks! These are my function and code:
function getStudentReport(student){ var report = "<h2> Student: " + student.name + "</h2>"; report += "<p>Track: " + student.track+ "</p>"; report += "<p>Achievements: " + student.achievements+ "</p>"; report += "<p>Points: " + student.points+ "</p>"; return report; }
while(true){ print(html); search = prompt("Search for a student to view his/her data or type 'quit' "); if(search==="quit"){ break; }
for(let i = 0; i <students.length; i++){
student = students[i];
if(search===student.name){
studentFound = true;
// html = getStudentReport(student);
// print(html);
html += "<h2> Student: " + student.name + "</h2>";
html += "<p>Track: " + student.track+ "</p>";
html += "<p>Achievements: " + student.achievements+ "</p>";
html += "<p>Points: " + student.points+ "</p>";
//when I use getStudentReport() here in stead of the html-string I get only the last name entered returned to the screen
}
}
if (studentFound===false){
html = search + " is not on the list";
}
}
2 Answers
Steven Parker
231,275 PointsThere's still more code.
The students array, the HTML portion, and the CSS. This would be a good situation for that workspace snapshot!
However, I spotted the problem anyway. Your individual lines all use a concatenating assignment ("+=
"); but when you call the function you have a normal assignment, which replaces anything previously stored. Just use the same operator with the function:
html += getStudentReport(student);
Caroline olijve
Courses Plus Student 14,499 PointsThanks, that fixed it !
Caroline olijve
Courses Plus Student 14,499 Pointsyou're right, something went wrong there, this is the full code:
let html = '';
let student;
let studentFound= false;
let search;
const print = (message) =>{
var divOutput = document.getElementById('output');
divOutput.innerHTML = message
}
const getStudentReport = (student)=> {
var report = "<h2> Student: " + student.name + "</h2>";
report += "<p>Track: " + student.track+ "</p>";
report += "<p>Achievements: " + student.achievements+ "</p>";
report += "<p>Points: " + student.points+ "</p>";
return report;
}
while(true){
print(html);
search = prompt("Search for a student to view his/her data or type 'quit' ");
if(search==="quit"){
break;
}
for(let i = 0; i <students.length; i++){
student = students[i];
if(search===student.name){
studentFound = true;
// html = getStudentReport(student);
// print(html);
html += `<h2> Student: ${student.name} </h2>`;
html += `<p>Track: ${student.track} </p>`;
html += `<p>Achievements: ${student.achievements} </p>`;
html += `<p>Points: ${student.points} </p>`;
//when I use getStudentReport() here in stead of the html-string I get only the last name entered returned to the screen
}
}
if (studentFound===false){
html = search + " staat niet op de lijst";
}
}
Steven Parker
231,275 PointsSteven Parker
231,275 PointsThis must not be all the code.
There's a reference to a "print" function, and to a variable named "html", but neither is defined here.
If you're using the workspaces, you can share everything at once if you make a snapshot of your workspace and post the link to it here.
Also, when posting code, always use the instructions for code formatting in the Markdown Cheatsheet pop-up below the "Add an Answer" area.