From 59f38690652764b8ab232d39d204b4fe80a66b13 Mon Sep 17 00:00:00 2001 From: enjoy15 Date: Sat, 29 Nov 2025 14:10:27 +0000 Subject: [PATCH 1/8] excercise-1 --- 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 798da302332d6767eb4f2663f68cacbe4e4278d8 Mon Sep 17 00:00:00 2001 From: enjoy15 Date: Sat, 29 Nov 2025 14:21:50 +0000 Subject: [PATCH 2/8] excercise-2 --- Sprint-1/destructuring/exercise-2/exercise.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Sprint-1/destructuring/exercise-2/exercise.js b/Sprint-1/destructuring/exercise-2/exercise.js index e11b75eb..a36ec68d 100644 --- a/Sprint-1/destructuring/exercise-2/exercise.js +++ b/Sprint-1/destructuring/exercise-2/exercise.js @@ -70,3 +70,17 @@ let hogwarts = [ occupation: "Teacher", }, ]; + +// Task 1: Display names of people in Gryffindor house +hogwarts.forEach(({ firstName, lastName, house }) => { + if (house === "Gryffindor") { + console.log(`${firstName} ${lastName}`); + } +}); + +// Task 2: Display names of teachers with pets +hogwarts.forEach(({ firstName, lastName, occupation, pet }) => { + if (occupation === "Teacher" && pet) { + console.log(`${firstName} ${lastName}`); + } +}); From c5862050d54953107ec30a1f58e66438ce2c3506 Mon Sep 17 00:00:00 2001 From: enjoy15 Date: Sat, 29 Nov 2025 14:32:21 +0000 Subject: [PATCH 3/8] exercise-3 --- Sprint-1/destructuring/exercise-3/exercise.js | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/Sprint-1/destructuring/exercise-3/exercise.js b/Sprint-1/destructuring/exercise-3/exercise.js index b3a36f4e..f1fc8f90 100644 --- a/Sprint-1/destructuring/exercise-3/exercise.js +++ b/Sprint-1/destructuring/exercise-3/exercise.js @@ -6,3 +6,23 @@ let order = [ { itemName: "Hot Coffee", quantity: 2, unitPricePence: 100 }, { itemName: "Hash Brown", quantity: 4, unitPricePence: 40 }, ]; + +// Print the receipt header +console.log("QTY ITEM TOTAL"); + +// Initialize total cost +let totalCost = 0; + +// Loop through the order and log each item +order.forEach(({ itemName, quantity, unitPricePence }) => { + const totalItemCost = (unitPricePence * quantity) / 100; // Convert pence to pounds + totalCost += totalItemCost; // Add to total cost + + // Log the item details with proper formatting + console.log( + `${quantity.toString().padEnd(8)}${itemName.padEnd(20)}${totalItemCost.toFixed(2)}` + ); +}); + +// Log the total cost +console.log(`\nTotal: ${totalCost.toFixed(2)}`); From 3bb3554e2fd17dfa2bfe78c939b30a8ff84048a4 Mon Sep 17 00:00:00 2001 From: enjoy15 Date: Wed, 10 Dec 2025 22:03:58 +0000 Subject: [PATCH 4/8] Refactor receipt printing for consistent formatting and alignment --- Sprint-1/destructuring/exercise-3/exercise.js | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/Sprint-1/destructuring/exercise-3/exercise.js b/Sprint-1/destructuring/exercise-3/exercise.js index f1fc8f90..7925e9d1 100644 --- a/Sprint-1/destructuring/exercise-3/exercise.js +++ b/Sprint-1/destructuring/exercise-3/exercise.js @@ -7,22 +7,23 @@ let order = [ { itemName: "Hash Brown", quantity: 4, unitPricePence: 40 }, ]; -// Print the receipt header -console.log("QTY ITEM TOTAL"); +// Define column spacing for consistent formatting +const columnSpacing = 8; + +// Print the receipt header with aligned columns +console.log("QTY".padEnd(columnSpacing) + "ITEM".padEnd(20) + "TOTAL"); -// Initialize total cost let totalCost = 0; -// Loop through the order and log each item order.forEach(({ itemName, quantity, unitPricePence }) => { const totalItemCost = (unitPricePence * quantity) / 100; // Convert pence to pounds - totalCost += totalItemCost; // Add to total cost + totalCost += totalItemCost; - // Log the item details with proper formatting + // Log each item's details with proper alignment console.log( - `${quantity.toString().padEnd(8)}${itemName.padEnd(20)}${totalItemCost.toFixed(2)}` + `${quantity.toString().padEnd(columnSpacing)}${itemName.padEnd(20)}${totalItemCost.toFixed(2)}` ); }); -// Log the total cost +// Print the total cost at the end console.log(`\nTotal: ${totalCost.toFixed(2)}`); From 579ae44351bf37431607c35444ace6bcbb087d24 Mon Sep 17 00:00:00 2001 From: enjoy15 Date: Thu, 11 Dec 2025 22:07:48 +0000 Subject: [PATCH 5/8] Add function for receipt formatting --- Sprint-1/destructuring/exercise-3/exercise.js | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/Sprint-1/destructuring/exercise-3/exercise.js b/Sprint-1/destructuring/exercise-3/exercise.js index 7925e9d1..a3223977 100644 --- a/Sprint-1/destructuring/exercise-3/exercise.js +++ b/Sprint-1/destructuring/exercise-3/exercise.js @@ -7,11 +7,20 @@ let order = [ { itemName: "Hash Brown", quantity: 4, unitPricePence: 40 }, ]; -// Define column spacing for consistent formatting -const columnSpacing = 8; +// Define constants for column formatting +const COLUMN_SPACING = 8; +const ITEM_COLUMN_WIDTH = 20; + +function formatColumn(content, width) { + return content.toString().padEnd(width); +} // Print the receipt header with aligned columns -console.log("QTY".padEnd(columnSpacing) + "ITEM".padEnd(20) + "TOTAL"); +console.log( + formatColumn("QTY", COLUMN_SPACING) + + formatColumn("ITEM", ITEM_COLUMN_WIDTH) + + "TOTAL" +); let totalCost = 0; @@ -19,11 +28,12 @@ order.forEach(({ itemName, quantity, unitPricePence }) => { const totalItemCost = (unitPricePence * quantity) / 100; // Convert pence to pounds totalCost += totalItemCost; - // Log each item's details with proper alignment + // Log each item's details console.log( - `${quantity.toString().padEnd(columnSpacing)}${itemName.padEnd(20)}${totalItemCost.toFixed(2)}` + formatColumn(quantity, COLUMN_SPACING) + + formatColumn(itemName, ITEM_COLUMN_WIDTH) + + totalItemCost.toFixed(2) ); }); -// Print the total cost at the end console.log(`\nTotal: ${totalCost.toFixed(2)}`); From b172eada81f4ee115f6ad4815422a85154bac0ad Mon Sep 17 00:00:00 2001 From: enjoy15 Date: Fri, 12 Dec 2025 12:00:27 +0000 Subject: [PATCH 6/8] Refactor column formatting function for receipt alignment --- Sprint-1/destructuring/exercise-3/exercise.js | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/Sprint-1/destructuring/exercise-3/exercise.js b/Sprint-1/destructuring/exercise-3/exercise.js index a3223977..5f74ce44 100644 --- a/Sprint-1/destructuring/exercise-3/exercise.js +++ b/Sprint-1/destructuring/exercise-3/exercise.js @@ -11,16 +11,17 @@ let order = [ const COLUMN_SPACING = 8; const ITEM_COLUMN_WIDTH = 20; -function formatColumn(content, width) { - return content.toString().padEnd(width); +// Function to format multiple columns +function formatColumns(quantity, item, total) { + return ( + quantity.toString().padEnd(COLUMN_SPACING) + + item.padEnd(ITEM_COLUMN_WIDTH) + + total + ); } // Print the receipt header with aligned columns -console.log( - formatColumn("QTY", COLUMN_SPACING) + - formatColumn("ITEM", ITEM_COLUMN_WIDTH) + - "TOTAL" -); +console.log(formatColumns("QTY", "ITEM", "TOTAL")); let totalCost = 0; @@ -29,11 +30,8 @@ order.forEach(({ itemName, quantity, unitPricePence }) => { totalCost += totalItemCost; // Log each item's details - console.log( - formatColumn(quantity, COLUMN_SPACING) + - formatColumn(itemName, ITEM_COLUMN_WIDTH) + - totalItemCost.toFixed(2) - ); + console.log(formatColumns(quantity, itemName, totalItemCost.toFixed(2))); }); +// Print the total cost at the end console.log(`\nTotal: ${totalCost.toFixed(2)}`); From fc413b7527b13ab4aa6f902f1d22261e6faeeedf Mon Sep 17 00:00:00 2001 From: enjoy15 Date: Fri, 12 Dec 2025 19:14:51 +0000 Subject: [PATCH 7/8] Remove redundant comments --- Sprint-1/destructuring/exercise-3/exercise.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/Sprint-1/destructuring/exercise-3/exercise.js b/Sprint-1/destructuring/exercise-3/exercise.js index 5f74ce44..ac3d856a 100644 --- a/Sprint-1/destructuring/exercise-3/exercise.js +++ b/Sprint-1/destructuring/exercise-3/exercise.js @@ -11,7 +11,6 @@ let order = [ const COLUMN_SPACING = 8; const ITEM_COLUMN_WIDTH = 20; -// Function to format multiple columns function formatColumns(quantity, item, total) { return ( quantity.toString().padEnd(COLUMN_SPACING) + @@ -33,5 +32,4 @@ order.forEach(({ itemName, quantity, unitPricePence }) => { console.log(formatColumns(quantity, itemName, totalItemCost.toFixed(2))); }); -// Print the total cost at the end console.log(`\nTotal: ${totalCost.toFixed(2)}`); From 80f644447b52a86f9d9083fa6ecfc3965c2c3e75 Mon Sep 17 00:00:00 2001 From: enjoy15 Date: Tue, 16 Dec 2025 21:46:48 +0000 Subject: [PATCH 8/8] Remove redundant comments --- Sprint-1/destructuring/exercise-3/exercise.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/Sprint-1/destructuring/exercise-3/exercise.js b/Sprint-1/destructuring/exercise-3/exercise.js index ac3d856a..ba95f65c 100644 --- a/Sprint-1/destructuring/exercise-3/exercise.js +++ b/Sprint-1/destructuring/exercise-3/exercise.js @@ -7,7 +7,7 @@ let order = [ { itemName: "Hash Brown", quantity: 4, unitPricePence: 40 }, ]; -// Define constants for column formatting + const COLUMN_SPACING = 8; const ITEM_COLUMN_WIDTH = 20; @@ -19,16 +19,15 @@ function formatColumns(quantity, item, total) { ); } -// Print the receipt header with aligned columns + console.log(formatColumns("QTY", "ITEM", "TOTAL")); let totalCost = 0; order.forEach(({ itemName, quantity, unitPricePence }) => { - const totalItemCost = (unitPricePence * quantity) / 100; // Convert pence to pounds + const totalItemCost = (unitPricePence * quantity) / 100; totalCost += totalItemCost; - // Log each item's details console.log(formatColumns(quantity, itemName, totalItemCost.toFixed(2))); });