From 2ea2b474921a2daced1e1cd84cc63b602c2d3942 Mon Sep 17 00:00:00 2001 From: Sisu860 Date: Sun, 20 Jul 2025 18:39:14 +0100 Subject: [PATCH 1/2] Implement using object destructuring, Gryffindor student filter, teachers-with-pets filter, and formatted takeout receipt using object destructuring --- Sprint-1/destructuring/exercise-1/exercise.js | 2 +- Sprint-1/destructuring/exercise-2/exercise.js | 19 +++++++++++++++++++ Sprint-1/destructuring/exercise-3/exercise.js | 11 +++++++++++ 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/Sprint-1/destructuring/exercise-1/exercise.js b/Sprint-1/destructuring/exercise-1/exercise.js index 1ff2ac5c..d86bc7bf 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..655069ac 100644 --- a/Sprint-1/destructuring/exercise-2/exercise.js +++ b/Sprint-1/destructuring/exercise-2/exercise.js @@ -70,3 +70,22 @@ let hogwarts = [ occupation: "Teacher", }, ]; +function getGryffindorStudents(hogwarts) { + for (const { firstName, lastName, house } of hogwarts) { + if (house === "Gryffindor") { + console.log(`${firstName} ${lastName}`); + } +} +} +getGryffindorStudents(hogwarts); + + +function getTeachersWithPets(hogwarts) { + for (const { firstName, lastName, occupation, pet } of hogwarts) { + if (occupation === "Teacher" && pet) { + console.log(`${firstName} ${lastName}`); + } + } +} + +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..2a8693a8 100644 --- a/Sprint-1/destructuring/exercise-3/exercise.js +++ b/Sprint-1/destructuring/exercise-3/exercise.js @@ -6,3 +6,14 @@ let order = [ { itemName: "Hot Coffee", quantity: 2, unitPricePence: 100 }, { itemName: "Hash Brown", quantity: 4, unitPricePence: 40 }, ]; +console.log("QTY ITEM TOTAL"); +let overallTotal = 0; +for (const{ itemName, quantity, unitPricePence } of order) { + const total = quantity * unitPricePence; + overallTotal += total; + console.log( + `${quantity.toString().padStart(2)} ${itemName.padEnd(30)} £${(total / 100).toFixed(2)}` + ); +} +console.log(`\nTotal: £${(overallTotal/100).toFixed(2)}`); + \ No newline at end of file From a28710a502758edd93e73e575d883dee2b60ce47 Mon Sep 17 00:00:00 2001 From: Sisu860 Date: Mon, 28 Jul 2025 21:15:07 +0100 Subject: [PATCH 2/2] Filter and log only Gryffindor students from hogwarts array --- Sprint-1/destructuring/exercise-2/exercise.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Sprint-1/destructuring/exercise-2/exercise.js b/Sprint-1/destructuring/exercise-2/exercise.js index 655069ac..2adefb62 100644 --- a/Sprint-1/destructuring/exercise-2/exercise.js +++ b/Sprint-1/destructuring/exercise-2/exercise.js @@ -72,7 +72,7 @@ let hogwarts = [ ]; function getGryffindorStudents(hogwarts) { for (const { firstName, lastName, house } of hogwarts) { - if (house === "Gryffindor") { + if (house === "Gryffindor") { console.log(`${firstName} ${lastName}`); } } @@ -88,4 +88,12 @@ function getTeachersWithPets(hogwarts) { } } -getTeachersWithPets(hogwarts); \ No newline at end of file +getTeachersWithPets(hogwarts); +function getGryffindorStudents(hogwarts) { + for (const { firstName, lastName, house, occupation } of hogwarts) { + if (house === "Gryffindor" && occupation === "Student") { + console.log(`${firstName} ${lastName}`); + } + } +} +getGryffindorStudents(hogwarts); \ No newline at end of file