From 7708cd1b3d8bb294cad8b68faf90cf7cb572ac78 Mon Sep 17 00:00:00 2001 From: galyna-k Date: Wed, 23 Jul 2025 12:06:32 +0100 Subject: [PATCH 1/3] destructure personOne object in function parameter --- Sprint-1/destructuring/exercise-1/exercise.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Sprint-1/destructuring/exercise-1/exercise.js b/Sprint-1/destructuring/exercise-1/exercise.js index 1ff2ac5c..51a4efbb 100644 --- a/Sprint-1/destructuring/exercise-1/exercise.js +++ b/Sprint-1/destructuring/exercise-1/exercise.js @@ -5,8 +5,9 @@ const personOne = { }; // Update the parameter to this function to make it work. +// Syntax to destructure the object personOne : const { name, age, favouriteFood } = personOne; // 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}.` ); From 3db069f269aa376f8b147ec6381d8cec5ad3f9ed Mon Sep 17 00:00:00 2001 From: galyna-k Date: Wed, 23 Jul 2025 12:10:30 +0100 Subject: [PATCH 2/3] filter and display Gryffindor members and teachers with pets using object destructuring --- Sprint-1/destructuring/exercise-2/exercise.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/Sprint-1/destructuring/exercise-2/exercise.js b/Sprint-1/destructuring/exercise-2/exercise.js index e11b75eb..334961ad 100644 --- a/Sprint-1/destructuring/exercise-2/exercise.js +++ b/Sprint-1/destructuring/exercise-2/exercise.js @@ -70,3 +70,19 @@ let hogwarts = [ occupation: "Teacher", }, ]; + +// Task 1. Gryffindor members +console.log("Gryffindor members:"); +hogwarts.forEach(({ firstName, lastName, house }) => { + if (house === "Gryffindor") { + console.log(`${firstName} ${lastName}`); + } +}); + +// Task 2. Teachers +console.log("\nTeachers with pets:"); +hogwarts.forEach(({ firstName, lastName, occupation, pet }) => { + if (occupation === "Teacher" && pet) { + console.log(`${firstName} ${lastName}`); + } +}); From 7a7bba2e23fa320baee27b2cb4141b9dacfdedad Mon Sep 17 00:00:00 2001 From: galyna-k Date: Wed, 23 Jul 2025 12:14:08 +0100 Subject: [PATCH 3/3] generate takeout receipt using reduce and destructuring --- Sprint-1/destructuring/exercise-3/exercise.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Sprint-1/destructuring/exercise-3/exercise.js b/Sprint-1/destructuring/exercise-3/exercise.js index b3a36f4e..15f28c60 100644 --- a/Sprint-1/destructuring/exercise-3/exercise.js +++ b/Sprint-1/destructuring/exercise-3/exercise.js @@ -6,3 +6,16 @@ let order = [ { itemName: "Hot Coffee", quantity: 2, unitPricePence: 100 }, { itemName: "Hash Brown", quantity: 4, unitPricePence: 40 }, ]; + +// Display the order summary +console.log(`QTY ITEM TOTAL`); + +// Calculate the total for each item and the overall total +let total = order.reduce((sum, { quantity, itemName, unitPricePence }) => { + let lineTotal = (quantity * unitPricePence) / 100; + console.log(`${quantity} ${itemName.padEnd(20)}${lineTotal.toFixed(2)}`); + return sum + lineTotal; +}, 0); + +// Display the overall total +console.log(`\nTotal: ${total.toFixed(2)}`);