Skip to content
Closed
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
8 changes: 5 additions & 3 deletions Sprint-2/1-key-errors/0.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// Predict and explain first...
// =============> write your prediction here
// =============> Capitalises the first letter of the str

// call the function capitalise with a string input
// interpret the error message and figure out why an error is occurring
Expand All @@ -9,5 +9,7 @@ function capitalise(str) {
return str;
}

// =============> write your explanation here
// =============> write your new code here
capitalise("mohsen");

// =============> variable str is declared again inside function
// =============> str = `${str[0].toUpperCase()}${str.slice(1)}`;
6 changes: 3 additions & 3 deletions Sprint-2/1-key-errors/1.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Predict and explain first...

// Why will an error occur when this program runs?
// =============> write your prediction here
// =============> Instead of calling the function, a variable is called
Comment thread
cjyuan marked this conversation as resolved.
Outdated

// Try playing computer with the example to work out what is going on

Expand All @@ -14,7 +14,7 @@ function convertToPercentage(decimalNumber) {

console.log(decimalNumber);

// =============> write your explanation here
// =============> Also inside the function, decimalNumber is called again

// Finally, correct the code to fix the problem
// =============> write your new code here
// =============> decimalNumber = 0.5;
Comment thread
cjyuan marked this conversation as resolved.
8 changes: 4 additions & 4 deletions Sprint-2/1-key-errors/2.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,18 @@

// this function should square any number but instead we're going to get an error

// =============> write your prediction of the error here
// =============> The variable num is not declared

function square(3) {
return num * num;
}

// =============> write the error message here
// =============>SyntaxError: Unexpected number

// =============> explain this error message here
// =============> There must a variable declared, not just simply passing a number as an argument
Comment thread
cjyuan marked this conversation as resolved.

// Finally, correct the code to fix the problem

// =============> write your new code here
// =============> function square(num) {


6 changes: 3 additions & 3 deletions Sprint-2/2-mandatory-debug/0.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
// Predict and explain first...

// =============> write your prediction here
// =============> the result of the multiply is printed inside function, and at the function call is will be undefined

function multiply(a, b) {
console.log(a * b);
}

console.log(`The result of multiplying 10 and 32 is ${multiply(10, 32)}`);

// =============> write your explanation here
// =============> because function is not returning any value

// Finally, correct the code to fix the problem
// =============> write your new code here
// =============> return a * b;
6 changes: 3 additions & 3 deletions Sprint-2/2-mandatory-debug/1.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// Predict and explain first...
// =============> write your prediction here
// =============> undefined will be printed

function sum(a, b) {
return;
Expand All @@ -8,6 +8,6 @@ function sum(a, b) {

console.log(`The sum of 10 and 32 is ${sum(10, 32)}`);

// =============> write your explanation here
// =============> because the function returns nothing
// Finally, correct the code to fix the problem
// =============> write your new code here
// =============> return a + b;
9 changes: 5 additions & 4 deletions Sprint-2/2-mandatory-debug/2.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
// Predict and explain first...

// Predict the output of the following code:
// =============> Write your prediction here
// =============> the last digit of every function call will be 3

const num = 103;

function getLastDigit() {
function getLastDigit(num) {
return num.toString().slice(-1);
}

Expand All @@ -16,9 +16,10 @@ console.log(`The last digit of 806 is ${getLastDigit(806)}`);
// Now run the code and compare the output to your prediction
// =============> write the output here
// Explain why the output is the way it is
// =============> write your explanation here
// =============> function is using the num declared before it , not the number passed to it
// Finally, correct the code to fix the problem
// =============> write your new code here
// =============> function getLastDigit(num) {

// This program should tell the user the last digit of each number.
// Explain why getLastDigit is not working properly - correct the problem
// Variable num used inside the function, should be passed as an argument
7 changes: 5 additions & 2 deletions Sprint-2/3-mandatory-implement/1-bmi.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,8 @@
// It should return their Body Mass Index to 1 decimal place

function calculateBMI(weight, height) {
// return the BMI of someone based off their weight and height
}
// return the BMI of someone based off their weight and height
const bmi = weight / height ** 2;
return bmi.toFixed(1);
Comment thread
cjyuan marked this conversation as resolved.
Outdated
}
console.log(calculateBMI(70, 1.73));
3 changes: 3 additions & 0 deletions Sprint-2/3-mandatory-implement/2-cases.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,6 @@
// You will need to come up with an appropriate name for the function
// Use the MDN string documentation to help you find a solution
// This might help https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toUpperCase
function makeUpperSnakeCase(str) {
return str.toUpperCase().split(" ").join("_");
Comment thread
cjyuan marked this conversation as resolved.
Outdated
}
19 changes: 19 additions & 0 deletions Sprint-2/3-mandatory-implement/3-to-pounds.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,22 @@
// You will need to declare a function called toPounds with an appropriately named parameter.

// You should call this function a number of times to check it works for different inputs

function toPounds(penceString) {
const penceStringWithoutTrailingP = penceString.substring(
0,
penceString.length - 1
);

const paddedPenceNumberString = penceStringWithoutTrailingP.padStart(3, "0");
const pounds = paddedPenceNumberString.substring(
0,
paddedPenceNumberString.length - 2
);

const pence = paddedPenceNumberString
.substring(paddedPenceNumberString.length - 2)
.padEnd(2, "0");

return `£${pounds}.${pence}`;
}
12 changes: 7 additions & 5 deletions Sprint-2/4-mandatory-interpret/time-format.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,18 +17,20 @@ function formatTimeDisplay(seconds) {
// Questions

// a) When formatTimeDisplay is called how many times will pad be called?
// =============> write your answer here
// =============> 3
formatTimeDisplay(61);

// Call formatTimeDisplay with an input of 61, now answer the following:

// b) What is the value assigned to num when pad is called for the first time?
// =============> write your answer here
// =============> 0

// c) What is the return value of pad is called for the first time?
// =============> write your answer here
// =============> It is called return value and will be '00'

// d) What is the value assigned to num when pad is called for the last time in this program? Explain your answer
// =============> write your answer here
// =============> The function is passed 61 which means 1 minute and 1 second so the value passed to pad for the last call is 1

// e) What is the return value assigned to num when pad is called for the last time in this program? Explain your answer
// =============> write your answer here
// =============> 1 is passed to function as a number and stored in num then num is turned into a string and one '0' will be added
// to the beginning of num so the returned value will be '01'
35 changes: 33 additions & 2 deletions Sprint-2/5-stretch-extend/format-time.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,11 @@

function formatAs12HourClock(time) {
const hours = Number(time.slice(0, 2));
if (hours > 12) {
return `${hours - 12}:00 pm`;
const minutes = time.slice(3);
Comment thread
cjyuan marked this conversation as resolved.
Outdated
if (hours === 0) return `12:${minutes} am`;
else if (hours === 12) return `12:${minutes} pm`;
else if (hours > 12) {
return `${(hours - 12).toString().padStart(2, "0")}:${minutes} pm`;
}
return `${time} am`;
}
Expand All @@ -23,3 +26,31 @@ console.assert(
currentOutput2 === targetOutput2,
`current output: ${currentOutput2}, target output: ${targetOutput2}`
);

const currentOutput3 = formatAs12HourClock("00:00");
const targetOutput3 = "12:00 am";
console.assert(
currentOutput3 === targetOutput3,
`current output: ${currentOutput3}, target output: ${targetOutput3}`
);

const currentOutput4 = formatAs12HourClock("12:00");
const targetOutput4 = "12:00 pm";
console.assert(
currentOutput4 === targetOutput4,
`current output: ${currentOutput4}, target output: ${targetOutput4}`
);

const currentOutput5 = formatAs12HourClock("13:06");
const targetOutput5 = "01:06 pm";
console.assert(
currentOutput5 === targetOutput5,
`current output: ${currentOutput5}, target output: ${targetOutput5}`
);

const currentOutput6 = formatAs12HourClock("01:56");
const targetOutput6 = "01:56 am";
console.assert(
currentOutput6 === targetOutput6,
`current output: ${currentOutput6}, target output: ${targetOutput6}`
);