Let's create a class to handle new animal crew candidates!
Edit the practice file as you complete the studio activity.
CrewCandidate
with a constructor
that takes
three parameters---name
, mass
, and scores
. Note that scores
will be an array of test results.Use console.log
for each object to verify that your class correctly assigns
the key/value pairs.
As our candidates complete more tests, we need to be able to add the new scores to their records.
addScore
method in CrewCandidate
. The function must take
a new score as a parameter. Code this function OUTSIDE of constructor
.
(If you need to review the syntax, revisit
Assigning Class Methods).this.scores
with the
push array method.83
to Bubba's record, then
print out the new score array with objectName.scores
.Now that we can add scores to our candidates' records, we need to be able to
evaluate their fitness for our astronaut program. Let's add two more methods
to CrewCandidate
---one to average the test scores and the other to
indicate if the candidate should be admitted.
average()
method outside constructor
. The function does NOT
need a parameter.this.scores
, then divide
the sum by the number of scores.Verify your code by evaluating and printing Merry's average test score (92.7).
Candidates with averages at or above 90% are automatically accepted to our training program. Reserve candidates average between 80 - 89%, while probationary candidates average between 70 - 79%. Averages below 70% lead to a rejection notice.
status()
method to CrewCandidate
. The method returns a string
(Accepted
, Reserve
, Probationary
, or Rejected
) depending on
a candidate's average.status
method requires the average test score, which can be called
as a parameter OR from inside the function. That's correct - methods can
call other methods inside a class! Just remember to use the this
keyword.status
has a candidate's average score, evaluate that score, and
return the appropriate string.status
method on each of the three candidates. Use a template
literal to print out '___ earned an average test score of ___% and has a
status of ___.'
Use the three methods to boost Glad Gator's status to Reserve
or higher.
How many tests will it take to reach Reserve
status? How many to reach
Accepted
? Remember, scores cannot exceed 100%.
Tip
Rather than adding one score at a time, could you use a loop?