Skip to content

WDI-101/objectively-funcy

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Objectively Funcy

What we're doing today is writing functions that can manipulate the object passed in.

Setup

  • Fork
  • Clone
  • Install dependencies with npm install
  • Run the tests with npm run test

Tasks

  • getFirstName - returns the value of the firstName property of the given person object

    • getFirstName({firstName: 'Colin', lastName: 'Jaffe'}) // -> 'Colin'
    • getFirstName({firstName: 'Petra', lastName: 'Solano'}) // -> 'Petra'
  • getLastName - returns the value of the lastName property of the given person object

    • getLastName({firstName: 'Colin', lastName: 'Jaffe'}) // -> 'Jaffe'
    • getLastName({firstName: 'Petra', lastName: 'Solano'}) // -> 'Solano'
  • getFullName - returns the value of the firstName property plus the lastName property with a space in the middle for the given person object

    • getFullName({firstName: 'Colin', lastName: 'Jaffe'}) // -> 'Colin Jaffe'
    • getFullName({firstName: 'Petra', lastName: 'Solano'}) // -> 'Petra Solano'
  • setFirstName - changes the value of the firstName property of the given person object to the given value

    • setFirstName({firstName: 'Colin', lastName: 'Jaffe'}, 'Redacted') // -> {firstName: 'Redacted', lastName: 'Jaffe'}
    • setFirstName({firstName: 'Petra', lastName: 'Solano'}, 'Anthony') // -> {firstName: 'Anthony', lastName: 'Solano'}
  • setAge - changes the value of the age property of the given person object to the given value

    • setAge({firstName: 'Colin', lastName: 'Jaffe', age: 39}, 45) // -> {firstName: 'Colin', lastName: 'Jaffe', age: 45}
    • setAge({firstName: 'Petra', lastName: 'Solano', age: 29}, 35) // -> {firstName: 'Petra', lastName: 'Solano', age: 35}
  • giveBirthday - increments by 1 the age property of the given person object, or gives them an age of 1 if they don't have that property

    • giveBirthday({firstName: 'Colin', lastName: 'Jaffe', age: 39}) // -> {firstName: 'Colin', lastName: 'Jaffe', age: 40}
    • giveBirthday({firstName: 'Petra', lastName: 'Solano', age: 29}) // -> {firstName: 'Solano', lastName: 'Solano', age: 30}
    • giveBirthday({firstName: 'Baby', lastName: 'Jaffe'}) // -> {firstName: 'Baby', lastName: 'Jaffe', age: 1}
  • marry - sets the marital status of both given people to true and sets each person's spouseName property to be the full name of the other

const person1 = {firstName: 'Colin', lastName: 'Jaffe', married: false}
const person2 = {firstName: 'Petra', lastName: 'Solano', married: false}
marry(person1, person2)
console.log(person1) // -> {firstName: 'Colin', lastName: 'Jaffe', married: true, spouseName: 'Petra Solano'}
console.log(person2) // -> {firstName: 'Petra', lastName: 'Solano', married: true, spouseName: 'Colin Jaffe'}
  • divorce - changes the marital status to false and removes the spouseName property from both given people
const person1 = {firstName: 'Colin', lastName: 'Jaffe', married: true, spouseName: 'Petra Solano'}
const person2 = {firstName: 'Petra', lastName: 'Solano', married: true, spouseName: 'Colin Jaffe'}
divorce(person1, person2);
console.log(person1) // -> {firstName: 'Colin', lastName: 'Jaffe', married: false} 
console.log(person2) // -> {firstName: 'Petra', lastName: 'Solano', married: false}

Tips

  • For getFullName, don't set a fullName property on the given object. Just give the caller of the function back a new value based on the first name and last name
  • For giveBirthday, you'll need to have some way to tell if the key age is already in the given person
  • For marry, you can re-use your getFullName function in order to get each person's spouseName. Just pass in the person whose fullName you want, and you'll get back your new spouseName property
  • Same as above for divorce; you'll need to research a way to REMOVE the key spouseName from the given people. Simply setting the properties to undefined or null won't be sufficient

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%