Skip to content
Open
Show file tree
Hide file tree
Changes from 3 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
2 changes: 1 addition & 1 deletion Sprint-1/destructuring/exercise-1/exercise.js
Original file line number Diff line number Diff line change
Expand Up @@ -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}.`
);
Expand Down
20 changes: 20 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,23 @@ let hogwarts = [
occupation: "Teacher",
},
];


function gryffindorHouse(hogwarts) {
return hogwarts.reduce((memberList, {firstName, lastName, house}) => {
if (house === 'Gryffindor') {
memberList.push(`${firstName} ${lastName}`)
}
return memberList
}, []).join("\n")
}

function teachersWithPets(hogwarts) {
return hogwarts.reduce((nameList, {firstName, lastName, pet, occupation}) => {
Copy link
Member

Choose a reason for hiding this comment

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

I'd similarly recommend a filter and map here :)

Copy link
Author

Choose a reason for hiding this comment

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

Yes. I have updated the function teachersWithPets as well.

if (occupation === "Teacher" && pet !== null) {
nameList.push(`${firstName} ${lastName}`)
}
return nameList;
}, []).join("\n")
}

18 changes: 18 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,21 @@ let order = [
{ itemName: "Hot Coffee", quantity: 2, unitPricePence: 100 },
{ itemName: "Hash Brown", quantity: 4, unitPricePence: 40 },
];


function receiptAndCosts(order) {
let total = 0;
const quantitySpace = 8;
const itemSpace = 20;
const costSpace = 5
let receipt = [`${'QTY'.padEnd(quantitySpace, " ")}${'ITEM'.padEnd(itemSpace, " ")}${'TOTAL'.padEnd(costSpace, " ")}`]
order.map(({itemName, quantity, unitPricePence}) => {
receipt.push(`${String(quantity).padEnd(quantitySpace, " ")}${itemName.padEnd(itemSpace, " ")}${String(Number(unitPricePence / 100 * quantity).toFixed(2)).padEnd(costSpace, " ")}`)
total += unitPricePence / 100 * quantity
})
receipt.push(" ")
receipt.push(`Total: ${total.toFixed(2)}`)
return receipt.join("\n")
}

console.log(receiptAndCosts(order))