diff --git a/Sprint-1/destructuring/exercise-1/exercise.js b/Sprint-1/destructuring/exercise-1/exercise.js index 1ff2ac5c..90eb4795 100644 --- a/Sprint-1/destructuring/exercise-1/exercise.js +++ b/Sprint-1/destructuring/exercise-1/exercise.js @@ -6,7 +6,7 @@ const personOne = { // Update the parameter to this function to make it work. // Don't change anything else. -function introduceYourself(___________________________) { +function introduceYourself({name, age, favouriteFood}) { console.log( `Hello, my name is ${name}. I am ${age} years old and my favourite food is ${favouriteFood}.` ); diff --git a/Sprint-1/destructuring/exercise-1/readme.md b/Sprint-1/destructuring/exercise-1/readme.md index 28ca6c3d..fb38340b 100644 --- a/Sprint-1/destructuring/exercise-1/readme.md +++ b/Sprint-1/destructuring/exercise-1/readme.md @@ -30,4 +30,7 @@ console.log(`Batman is ${firstName}, ${lastName}`); # Exercise - What is the syntax to destructure the object `personOne` in exercise.js? +```js +let {name, age, favouriteFood} = personOne +``` - Update the parameter of the function `introduceYourself` to use destructuring on the object that gets passed in. diff --git a/Sprint-1/destructuring/exercise-2/exercise.js b/Sprint-1/destructuring/exercise-2/exercise.js index e11b75eb..6e6eba75 100644 --- a/Sprint-1/destructuring/exercise-2/exercise.js +++ b/Sprint-1/destructuring/exercise-2/exercise.js @@ -70,3 +70,24 @@ let hogwarts = [ occupation: "Teacher", }, ]; + +//task 1 +function getGryffindorMembers(arr) { + const gryffindorMembers = arr.filter(({ house }) => house === "Gryffindor").map(({ firstName, lastName }) => `${firstName} ${lastName}`).join('\n'); + + console.log(gryffindorMembers); +} + +getGryffindorMembers(hogwarts); + +//task 2 +function getTeachersWithPets(arr) { + const teachersWithPets = arr.filter(({ occupation, pet }) => occupation === "Teacher" && pet).map(({ firstName, lastName }) => + `${firstName} ${lastName}` + ).join('\n'); + + + console.log(teachersWithPets); +} + +getTeachersWithPets(hogwarts); \ No newline at end of file diff --git a/Sprint-1/destructuring/exercise-3/exercise.js b/Sprint-1/destructuring/exercise-3/exercise.js index b3a36f4e..67ccf173 100644 --- a/Sprint-1/destructuring/exercise-3/exercise.js +++ b/Sprint-1/destructuring/exercise-3/exercise.js @@ -6,3 +6,24 @@ let order = [ { itemName: "Hot Coffee", quantity: 2, unitPricePence: 100 }, { itemName: "Hash Brown", quantity: 4, unitPricePence: 40 }, ]; + +function printReceipt(order){ + let total = 0 + let qtyWidthMax = 3 + let itemWidthMax = 4 + const receiptLines = order.map(({itemName, quantity, unitPricePence}) => { + const itemTotalPounds = (quantity * (unitPricePence / 100)); + qtyWidthMax = Math.max(qtyWidthMax, String(quantity).length); + itemWidthMax = Math.max(itemWidthMax, itemName.length); + return { itemName, quantity, itemTotalPounds }; + }) + console.log('QTY'.padEnd(qtyWidthMax+4), 'ITEM'.padEnd(itemWidthMax+3), 'TOTAL'); + receiptLines.forEach(({itemName, quantity, itemTotalPounds}) => { + total += itemTotalPounds; + console.log(String(quantity).padEnd(qtyWidthMax+4), itemName.padEnd(itemWidthMax+3), `${itemTotalPounds.toFixed(2)}`); + }) + console.log(`\nTotal: ${total.toFixed(2)}`); + +} + +printReceipt(order); \ No newline at end of file