- Create an
Object - Perform operations on an
Object
We covered the concepts of Objects in JavaScript. Now it's time to put the
concepts into practice.
If you haven't already, fork and clone this lab into your local environment.
Navigate into its directory in the terminal, then run code . to open the files
in Visual Studio Code.
Follow the steps below, running learn test as you go to get additional
information from the tests.
Let's say we are working on a program that will keep track of a company's
employees. We want to store each employee as an Object. We're starting
small, so to begin with we'll only keep track of the employee's name and street
address.
To start, define a employee variable and assign it to an Object containing
name and streetAddress keys; you can use whatever values you like. Use
literal syntax to create your Object. Various updates will be applied to this
variable (destructively and non-destructively) in this lab.
Once you've initialized the employee Object, you'll need to create the
following four functions:
updateEmployeeWithKeyAndValue(): this function should take in three arguments: anemployeeObject, akeyand avalue. This function should not mutate theemployee; it should return a newObjectthat has an updatedvaluefor thekeypassed in. Hint: use the spread operator!destructivelyUpdateEmployeeWithKeyAndValue(): this function should work the same asupdateEmployeeWithKeyAndValue()but it should mutate theemployeeObjectpassed in.deleteFromEmployeeByKey(): this function should take in aemployeeObjectand akey. It should delete the property with thatkeyfrom theemployeeObject. This should not mutate the originalemployeeObject; it should return a newObjectthat doesn't include the identified key-value pair. Hint: use the spread operator!destructivelyDeleteFromEmployeeByKey(): this function should work the same asdeleteFromEmployeeByKey()but it should mutate theemployeeObject.
As you work on your functions, be sure to think about when to use dot notation vs. bracket notation.
In this lab, we practiced creating an Object and performing operations on it.