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-2/exercise.js b/Sprint-1/destructuring/exercise-2/exercise.js index e11b75eb..44c09e28 100644 --- a/Sprint-1/destructuring/exercise-2/exercise.js +++ b/Sprint-1/destructuring/exercise-2/exercise.js @@ -70,3 +70,33 @@ let hogwarts = [ occupation: "Teacher", }, ]; + +// Task 1 +function hogwartsHouse(characters) { + const names = []; + + for (const {firstName, lastName, house} of characters) { + if (house === 'Gryffindor') { + names.push(`${firstName} ${lastName}`) + } + } + return names.join("\n"); +} + +console.log(hogwartsHouse(hogwarts)); + + +// Task 2 +function pets(elements) { + const names = []; + + for (const { firstName, lastName, pet, occupation } of elements) { + if (pet != null && occupation === 'Teacher') { + names.push(`${firstName} ${lastName}`) + } + } + + return names.join("\n"); +} + +console.log(pets(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..fc76dfe7 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 orderReceipt(order) { + const lineItem = []; + let total = 0; + + for (const {itemName, quantity, unitPricePence} of order) { + const lineTotal = ((unitPricePence * quantity) / 100); + total += lineTotal; + + lineItem.push( + `${String(quantity).padEnd(8)} ${String(itemName).padEnd(20)} ${lineTotal.toFixed(2)}` + ); + } + return [ + "QTY ITEM TOTAL", + ...lineItem, + `\nTotal: ${total.toFixed(2)}` + ].join("\n"); +} + +console.log(orderReceipt(order)); \ No newline at end of file