From c36e8eedef0ad7cd37fdf41f7d824997ce9a760b Mon Sep 17 00:00:00 2001 From: russom Date: Wed, 5 Aug 2026 00:16:48 +0100 Subject: [PATCH 01/13] Parameter to the function updated with the object properties. --- Sprint-1/destructuring/exercise-1/exercise.js | 2 +- 1 file changed, 1 insertion(+), 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}.` ); From 8bd864d06c3b806d06c516ce0262ea1617bf3b25 Mon Sep 17 00:00:00 2001 From: russom Date: Wed, 5 Aug 2026 22:56:39 +0100 Subject: [PATCH 02/13] Function created for displaying first and last name. --- Sprint-1/destructuring/exercise-2/exercise.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Sprint-1/destructuring/exercise-2/exercise.js b/Sprint-1/destructuring/exercise-2/exercise.js index e11b75eb..7db6509f 100644 --- a/Sprint-1/destructuring/exercise-2/exercise.js +++ b/Sprint-1/destructuring/exercise-2/exercise.js @@ -70,3 +70,14 @@ let hogwarts = [ occupation: "Teacher", }, ]; + +function displayGryffindor(hogwarts) { + const people = hogwarts.filter(({ house }) => house === "Gryffindor"); + people.forEach(({ firstName, lastName }) => { + console.log(`${firstName} ${lastName}`); + }); +} + + +displayGryffindor(hogwarts); + From b558fcc9fa337d723fefdc0e2da9e9cf284217fe Mon Sep 17 00:00:00 2001 From: russom Date: Wed, 5 Aug 2026 22:57:32 +0100 Subject: [PATCH 03/13] Comment added explaining what method is used. --- Sprint-1/destructuring/exercise-1/exercise.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sprint-1/destructuring/exercise-1/exercise.js b/Sprint-1/destructuring/exercise-1/exercise.js index d86bc7bf..8a4d9066 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({ name, age, favouriteFood }) { +function introduceYourself({ name, age, favouriteFood }) { // Object destructuring in function parameters. console.log( `Hello, my name is ${name}. I am ${age} years old and my favourite food is ${favouriteFood}.` ); From 4ae7b33d12369670d9d2056cac3f3bf193b337d5 Mon Sep 17 00:00:00 2001 From: russom Date: Wed, 5 Aug 2026 23:19:49 +0100 Subject: [PATCH 04/13] pet !== null added to filter teachers with pets --- Sprint-1/destructuring/exercise-2/exercise.js | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/Sprint-1/destructuring/exercise-2/exercise.js b/Sprint-1/destructuring/exercise-2/exercise.js index 7db6509f..5404031c 100644 --- a/Sprint-1/destructuring/exercise-2/exercise.js +++ b/Sprint-1/destructuring/exercise-2/exercise.js @@ -74,10 +74,19 @@ let hogwarts = [ function displayGryffindor(hogwarts) { const people = hogwarts.filter(({ house }) => house === "Gryffindor"); people.forEach(({ firstName, lastName }) => { - console.log(`${firstName} ${lastName}`); + console.log(`${firstName} ${lastName}`); }); } - displayGryffindor(hogwarts); +function displayTeacherWithPets(hogwarts) { + const teachers = hogwarts.filter( + ({ occupation, pet }) => occupation === "Teacher" && pet !== null + ); + teachers.forEach(({ firstName, lastName }) => { + console.log(`${firstName} ${lastName}`); + }); +} + +displayTeacherWithPets(hogwarts); From abbcf09aaa42b8bd4a7795a2934bd2ccca50ddc8 Mon Sep 17 00:00:00 2001 From: russom Date: Wed, 5 Aug 2026 23:20:56 +0100 Subject: [PATCH 05/13] Function names updated. --- Sprint-1/destructuring/exercise-2/exercise.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Sprint-1/destructuring/exercise-2/exercise.js b/Sprint-1/destructuring/exercise-2/exercise.js index 5404031c..2a8bb96a 100644 --- a/Sprint-1/destructuring/exercise-2/exercise.js +++ b/Sprint-1/destructuring/exercise-2/exercise.js @@ -80,7 +80,7 @@ function displayGryffindor(hogwarts) { displayGryffindor(hogwarts); -function displayTeacherWithPets(hogwarts) { +function displayTeachers(hogwarts) { const teachers = hogwarts.filter( ({ occupation, pet }) => occupation === "Teacher" && pet !== null ); @@ -89,4 +89,4 @@ function displayTeacherWithPets(hogwarts) { }); } -displayTeacherWithPets(hogwarts); +displayTeachers(hogwarts); From 828f30b57a0ff5a0f901688e6fcbfb6e20297ebf Mon Sep 17 00:00:00 2001 From: russom Date: Wed, 5 Aug 2026 23:21:29 +0100 Subject: [PATCH 06/13] Empty space deleted --- Sprint-1/destructuring/exercise-1/exercise.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sprint-1/destructuring/exercise-1/exercise.js b/Sprint-1/destructuring/exercise-1/exercise.js index 8a4d9066..00498fc4 100644 --- a/Sprint-1/destructuring/exercise-1/exercise.js +++ b/Sprint-1/destructuring/exercise-1/exercise.js @@ -12,4 +12,4 @@ function introduceYourself({ name, age, favouriteFood }) { // Object destructuri ); } -introduceYourself(personOne); +introduceYourself(personOne); \ No newline at end of file From 21524fb0f26b02057cb4966ef71a731db1d7599f Mon Sep 17 00:00:00 2001 From: russom Date: Thu, 6 Aug 2026 12:34:14 +0100 Subject: [PATCH 07/13] Log items logged with no formatting first --- Sprint-1/destructuring/exercise-3/exercise.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Sprint-1/destructuring/exercise-3/exercise.js b/Sprint-1/destructuring/exercise-3/exercise.js index b3a36f4e..93984ac9 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 }, ]; + +function printReceipt(order) { + order.forEach(({ quantity, itemName, unitPricePence }) => { + console.log(`${quantity} ${itemName} ${unitPricePence}`); + }); +} + +printReceipt(order); +// 1. Log each item quantity and name. +// 2. Log total cost. +// 3. \ No newline at end of file From 5320ca4cf465a8461d85102401eada6835078ca8 Mon Sep 17 00:00:00 2001 From: russom Date: Thu, 6 Aug 2026 12:55:47 +0100 Subject: [PATCH 08/13] Receipt heading QTY, ITEM and TOTAL created --- Sprint-1/destructuring/exercise-3/exercise.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Sprint-1/destructuring/exercise-3/exercise.js b/Sprint-1/destructuring/exercise-3/exercise.js index 93984ac9..b6eb75ba 100644 --- a/Sprint-1/destructuring/exercise-3/exercise.js +++ b/Sprint-1/destructuring/exercise-3/exercise.js @@ -8,6 +8,8 @@ let order = [ ]; function printReceipt(order) { + let total = 0; + console.log("QTY ITEM TOTAL"); order.forEach(({ quantity, itemName, unitPricePence }) => { console.log(`${quantity} ${itemName} ${unitPricePence}`); }); From 76b7b021beee30830805d86dcca1752fd90e6403 Mon Sep 17 00:00:00 2001 From: russom Date: Thu, 6 Aug 2026 13:02:23 +0100 Subject: [PATCH 09/13] Item price total and final total calculated --- Sprint-1/destructuring/exercise-3/exercise.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Sprint-1/destructuring/exercise-3/exercise.js b/Sprint-1/destructuring/exercise-3/exercise.js index b6eb75ba..d3734c1c 100644 --- a/Sprint-1/destructuring/exercise-3/exercise.js +++ b/Sprint-1/destructuring/exercise-3/exercise.js @@ -11,6 +11,9 @@ function printReceipt(order) { let total = 0; console.log("QTY ITEM TOTAL"); order.forEach(({ quantity, itemName, unitPricePence }) => { + let itemTotal = quantity * unitPricePence; + total = total + itemTotal; + let priceInPounds = itemTotal / 100; console.log(`${quantity} ${itemName} ${unitPricePence}`); }); } From e0f84c2c54e2fec35b703b9826b695911d1ec490 Mon Sep 17 00:00:00 2001 From: russom Date: Thu, 6 Aug 2026 13:42:14 +0100 Subject: [PATCH 10/13] Formatting: add spaces to match the requirement --- Sprint-1/destructuring/exercise-3/exercise.js | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/Sprint-1/destructuring/exercise-3/exercise.js b/Sprint-1/destructuring/exercise-3/exercise.js index d3734c1c..ff701b8c 100644 --- a/Sprint-1/destructuring/exercise-3/exercise.js +++ b/Sprint-1/destructuring/exercise-3/exercise.js @@ -9,16 +9,28 @@ let order = [ function printReceipt(order) { let total = 0; - console.log("QTY ITEM TOTAL"); + + console.log("QTY".padEnd(8) + "ITEM".padEnd(22) + "TOTAL"); + order.forEach(({ quantity, itemName, unitPricePence }) => { + let itemTotal = quantity * unitPricePence; + total = total + itemTotal; + let priceInPounds = itemTotal / 100; - console.log(`${quantity} ${itemName} ${unitPricePence}`); + + console.log( + quantity.toString().padEnd(8) + + itemName.padEnd(22) + + priceInPounds.toFixed(2) + ); }); + + console.log("\nTotal: " + (total / 100).toFixed(2)); } printReceipt(order); // 1. Log each item quantity and name. // 2. Log total cost. -// 3. \ No newline at end of file +// 3. From 379c91afe4cec9ba3c70504431972d70946c4028 Mon Sep 17 00:00:00 2001 From: russom Date: Thu, 6 Aug 2026 14:47:05 +0100 Subject: [PATCH 11/13] Comments: remove irrelevant comments. --- Sprint-1/destructuring/exercise-3/exercise.js | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/Sprint-1/destructuring/exercise-3/exercise.js b/Sprint-1/destructuring/exercise-3/exercise.js index ff701b8c..080a8b95 100644 --- a/Sprint-1/destructuring/exercise-3/exercise.js +++ b/Sprint-1/destructuring/exercise-3/exercise.js @@ -11,15 +11,14 @@ function printReceipt(order) { let total = 0; console.log("QTY".padEnd(8) + "ITEM".padEnd(22) + "TOTAL"); - + order.forEach(({ quantity, itemName, unitPricePence }) => { - let itemTotal = quantity * unitPricePence; - + total = total + itemTotal; - + let priceInPounds = itemTotal / 100; - + console.log( quantity.toString().padEnd(8) + itemName.padEnd(22) + @@ -31,6 +30,3 @@ function printReceipt(order) { } printReceipt(order); -// 1. Log each item quantity and name. -// 2. Log total cost. -// 3. From eaedbd1241c06d876596535679ecc184420ee68c Mon Sep 17 00:00:00 2001 From: russom Date: Thu, 6 Aug 2026 14:55:53 +0100 Subject: [PATCH 12/13] Function names updated with meaningful names --- Sprint-1/destructuring/exercise-2/exercise.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Sprint-1/destructuring/exercise-2/exercise.js b/Sprint-1/destructuring/exercise-2/exercise.js index 2a8bb96a..6ba2d356 100644 --- a/Sprint-1/destructuring/exercise-2/exercise.js +++ b/Sprint-1/destructuring/exercise-2/exercise.js @@ -71,16 +71,16 @@ let hogwarts = [ }, ]; -function displayGryffindor(hogwarts) { +function getGryffindorMembers(hogwarts) { const people = hogwarts.filter(({ house }) => house === "Gryffindor"); people.forEach(({ firstName, lastName }) => { console.log(`${firstName} ${lastName}`); }); } -displayGryffindor(hogwarts); +getGryffindorMembers(hogwarts); -function displayTeachers(hogwarts) { +function getTeachersWithPets(hogwarts) { const teachers = hogwarts.filter( ({ occupation, pet }) => occupation === "Teacher" && pet !== null ); @@ -89,4 +89,4 @@ function displayTeachers(hogwarts) { }); } -displayTeachers(hogwarts); +getTeachersWithPets(hogwarts); From c98ec55d506e2a9786d478aac35feca41a9094b1 Mon Sep 17 00:00:00 2001 From: russom Date: Thu, 6 Aug 2026 15:04:31 +0100 Subject: [PATCH 13/13] Formatting: add separating space between task 1 and 2 log print outs to --- Sprint-1/destructuring/exercise-2/exercise.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Sprint-1/destructuring/exercise-2/exercise.js b/Sprint-1/destructuring/exercise-2/exercise.js index 6ba2d356..99353b4c 100644 --- a/Sprint-1/destructuring/exercise-2/exercise.js +++ b/Sprint-1/destructuring/exercise-2/exercise.js @@ -78,8 +78,6 @@ function getGryffindorMembers(hogwarts) { }); } -getGryffindorMembers(hogwarts); - function getTeachersWithPets(hogwarts) { const teachers = hogwarts.filter( ({ occupation, pet }) => occupation === "Teacher" && pet !== null @@ -88,5 +86,8 @@ function getTeachersWithPets(hogwarts) { console.log(`${firstName} ${lastName}`); }); } +getGryffindorMembers(hogwarts); + +console.log(); getTeachersWithPets(hogwarts);