Skip to content

ITP-Jan 2025 | London | Chi Mbah | Module-Data-Flows | Week 10 | Sprint 1 | Array Destructuring #191

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion Sprint-1/destructuring/exercise-1/exercise.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,11 @@ 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}.`
);
}

introduceYourself(personOne);

23 changes: 23 additions & 0 deletions Sprint-1/destructuring/exercise-2/exercise.js
Original file line number Diff line number Diff line change
Expand Up @@ -70,3 +70,26 @@ let hogwarts = [
occupation: "Teacher",
},
];



// Task 1:

console.log("Gryffindor Members:");

hogwarts.forEach(({ firstName, lastName, house }) => {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This works really well! 👏
Something you can do (only a suggestion) is to use .filter to only keep the records where house === "Gryffindor", before .forEach.
This will make your code more concise.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter

(The same could be done to filter and only keep teachers who have pets in task 2 below)

if (house === "Gryffindor") {
console.log(`${firstName} ${lastName}`);
}
});


// Task 2:

console.log("\nTeachers with Pets:");

hogwarts.forEach(({ firstName, lastName, occupation, pet }) => {
if (occupation === "Teacher" && pet) {
console.log(`${firstName} ${lastName}`);
}
});
15 changes: 15 additions & 0 deletions Sprint-1/destructuring/exercise-3/exercise.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,18 @@ let order = [
{ itemName: "Hot Coffee", quantity: 2, unitPricePence: 100 },
{ itemName: "Hash Brown", quantity: 4, unitPricePence: 40 },
];

console.log("QTY ITEM TOTAL");

let total = 0;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's best practice to declare variables that are not reassigned as 'const' instead of 'let'.
Can you review your variable declarations that are not reassigned and change them to const?

Here is a video you can watch: https://youtu.be/RE6qf3As-XU?si=_YaiEPeBC5Cx_j56

for (let item of order) {
let { itemName, quantity, unitPricePence } = item;
let itemTotal = (unitPricePence * quantity) / 100;
total += itemTotal;
console.log(
`${String(quantity).padEnd(8)}${itemName.padEnd(20)}${itemTotal.toFixed(2)}`
);
}

console.log(`\nTotal: ${total.toFixed(2)}`);