Skip to content

Instantly share code, notes, and snippets.

@cchoi12
Created April 21, 2018 21:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cchoi12/48a7d88d612724fa07c84111cb904e33 to your computer and use it in GitHub Desktop.
Save cchoi12/48a7d88d612724fa07c84111cb904e33 to your computer and use it in GitHub Desktop.
wutthink
// ---- My Solution ----- //
const studentGrades = [
{ name: 'Joe', grade: 88 },
{ name: 'Jen', grade: 94 },
{ name: 'Steph', grade: 77 },
{ name: 'Allen', grade: 60 },
{ name: 'Gina', grade: 54 }
];
function studentGreeting(student) {
if (student.grade >= 90) {
return `Excellent Job ${student.name}, you got an a.`
} else if (student.grade >= 80) {
return `Nice Job ${student.name}, you got an b.`
} else if (student.grade >= 70) {
return `Well done ${student.name}, you got an c.`
} else if (student.grade >= 60) {
return `What happened ${student.name}, you got an d.`
} else {
return `Not good ${student.name}, you got an f.`
}
}
const returnedStudents = studentGrades.map(studentGreeting)
// -------- Suggested Solution ------- //
const studentGrades = [
{name: 'Joe', grade: 88},
{name: 'Jen', grade: 94},
{name: 'Steph', grade: 77},
{name: 'Allen', grade: 60},
{name: 'Gina', grade: 54},
];
const messages = {
a: 'Excellent Job',
b: 'Nice Job',
c: 'Well done',
d: 'What happened',
f: 'Not good',
};
function letterGrade(points){
if(points >= 90){
return 'a';
} else if (points >= 80){
return 'b';
} else if (points >= 70){
return 'c';
} else if (points >= 60){
return 'd';
} else {
return 'f';
}
}
function feedBack(feedBackRules){
return function(student){
const grade = letterGrade(student.grade);
const message = feedBackRules[grade];
return `${message} ${student.name}, you got an ${grade}`;
}
}
const gradeFeedback = studentGrades.map(feedBack(messages));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment