You are on page 1of 2

[00:00:00]

>> Kyle Simpson: So let's jump into our exercise on function expressions. Pull up
the readme and the ex.js for the function expressions exercise. In this exercise,
you're gonna be writing some functions and also some function expressions. And
these functions are gonna be managing some student enrollment records for our
workshop.

[00:00:23]
The spirit of the exercise is that you're gonna be using what we've learned about
named functions and using functions wherever possible. So you wanna be using things
like map and filter and find instead of your old school for loops. You wanna use
functions wherever possible. This is broken up into two parts, this exercise.

[00:00:44]
First, complete part one and then complete part two. We'll come back, when we come
back we will explain the solution for both so you will have time to work on both
parts. In part one, what you're gonna do is write a function declarations and named
function expressions according to the instructions here, and I'll go over those in
a moment.

[00:01:04]
In part two, what you're going to do is rewrite all of those functions that you did
as arrow functions. The purpose of part one and part two is for you to have a side
by side comparison of the differences in code readability and functionality between
using named functions and using arrow functions, okay?

[00:01:23]
So there won't be any difference in behavior, just simply a difference in code
style between those two parts.
>> Kyle Simpson: The main functionality that you need to implement is that there
are three functions, called printRecords, paidStudentsToEnroll, and remain, I'm
sorry, remindUnpaid. Those three functions have been stubbed out in the ex.js file.

[00:01:46]
They're there for you, you see what they receive as arguments, I mean, as
parameters. But you need to implement those according to what the readme says. And
you'll notice that those functions are already called for you, so here I've called
printRecords. I call paidStudentsToEnroll and I call remindUnpaid and the output
that is expected is here in this code comment.

[00:02:09]
So your output needs to match this output, okay? What printRecords does is it takes
a list of student IDs. So it's gonna take an array of student IDs as you see here,
we are passing in an array of student IDs called currentEnrollment. So printRecords
takes a list of student IDs and needs to retrieve each student record.

[00:02:30]
Those are stored in the studentRecords array. Retrieve each record by ID, and
there's a hint there than you can use array find. Sorted by the student name,
ascending. You can use array sort, but you're gonna have to use a custom function.
And then print each record to the console or the console log statement including
their name, their ID, and whether or not they're paid.

[00:02:56]
That's what that function does. Number two, the paid students to enroll function
looks through all the student records and checks to see if any of them are paid but
not yet enrolled. Meaning they're not yet in the currentEnrollment array, their ID
isn't there. Collect those IDs and then return a new array with the previously
enrolled IDs plus the new ones.
[00:03:15]
So, it doesn't modify, it returns a new array. And finally, the remindUnpaid is
you're gonna take a list of student IDs and filter that list to only ones whose
records are in the unpaid status. And then pass that list back to our printRecords
from item one to print out only the students that are unpaid.

[00:03:38]
Okay, so this is part one of the exercise and again, part two, you don't change any
behavior, you just simply rewrite it with arrow functions. Generally speaking, part
one should take you about 15 minutes and part two should take you about five
minutes. So overall we would take about 20 minutes to do this exercise.

[00:03:56]
So we'll break now, let you have a chance to work on exercise part one and part
two. I'd recommend putting your solutions in two separate files so that you can
compare and contrast them. We'll come back in a little bit and talk through the
solution to this exercise.

[00:04:11]
Reminder that if you get stuck and you need a little bit of a hand through you just
like to cheat, the solutions files are there in EXfix-1 and EXfix-2.

You might also like