From 3816547aeac38e991e97bb479a0cce627c0a9589 Mon Sep 17 00:00:00 2001 From: Heresh <108929624+HereshT@users.noreply.github.com> Date: Wed, 1 Mar 2023 10:12:26 +0000 Subject: [PATCH 1/6] Glasgow_6- Herish - Turki - JS - Core-1-Coursework-Week2 Glasgow_6- Herish - Turki - JS - Core-1-Coursework-Week2 --- = | 0 extra/1-factorial.js | 8 +++ mandatory/1-fix-functions.js | 6 +-- mandatory/2-function-creation.js | 83 +++++++++++++++++++++++++------- 4 files changed, 75 insertions(+), 22 deletions(-) create mode 100644 = diff --git a/= b/= new file mode 100644 index 00000000..e69de29b diff --git a/extra/1-factorial.js b/extra/1-factorial.js index da9f8e6c..4d2bf965 100644 --- a/extra/1-factorial.js +++ b/extra/1-factorial.js @@ -12,6 +12,14 @@ function factorial(input) { // TODO } +function factorial(input) { + let sum = 1; + for (let i = input; i > 0; i--) { + sum *= i; + } + return sum; +} + /* ======= TESTS - DO NOT MODIFY ===== */ describe("factorial", () => { diff --git a/mandatory/1-fix-functions.js b/mandatory/1-fix-functions.js index 6323604f..aee90474 100644 --- a/mandatory/1-fix-functions.js +++ b/mandatory/1-fix-functions.js @@ -10,7 +10,7 @@ */ -function getMood() { +function getMood(isHappy) { let isHappy = true; if (isHappy) { @@ -21,9 +21,7 @@ function getMood() { } function greaterThan10(num) { - let isBigEnough; - - if (isBigEnough) { + if (num > 10) { return "num is greater than 10"; } else { return "num is not big enough"; diff --git a/mandatory/2-function-creation.js b/mandatory/2-function-creation.js index d4590920..7d441464 100644 --- a/mandatory/2-function-creation.js +++ b/mandatory/2-function-creation.js @@ -4,7 +4,9 @@ 1. the user should be 18 or older 2. the user must be logged in */ -function isAcceptableUser(userAge, isLoggedIn) {} +function isAcceptableUser(userAge, isLoggedIn) { + return userAge >= 18 && isLoggedIn; +} /* Complete the function to apply discount percent based on how much is totalPrice in user cart. @@ -15,18 +17,51 @@ function isAcceptableUser(userAge, isLoggedIn) {} is applieds and 142.5 should be returned) */ -function applyDiscount(totalPrice) {} +function applyDiscount(totalPrice) { + let discount = 0; + if (totalPrice > 200) { + discount = 0.1; + } else if (totalPrice < 200) { + discount = 0.05; + } + return totalPrice - totalPrice * discount; +} + +// or + +// function applyDiscount(totalPrice) { +// if (totalPrice > 200){ +// return totalPrice * 0.9; +// } else { +// return totalPrice * 0.95; +// } +// } /* Complete the function to print to the console the odd numbers between 1 and limit (use a while loop): */ -function printOddNumbers(limit) {} +function printOddNumbers(limit) { + let baseNumber = 1; + + while (baseNumber <= limit) { + if (baseNumber % 2 !== 0) { + console.log(baseNumber); + } + baseNumber++; + } +} /* Complete the buyTwoGetTheCheapestFree function: if user buys two items, the cheapest item will be free! The function should return the price to be paid once the discount is applied. */ -function buyTwoGetTheCheapestFree(price1, price2) {} +function buyTwoGetTheCheapestFree(price1, price2) { + if (price1 >= price2) { + return price1; + } else { + return price2; + } +} /* Complete the function to determine if it is suitable for a person to register based on their age! @@ -34,7 +69,15 @@ function buyTwoGetTheCheapestFree(price1, price2) {} - if the person is older than 12 and younger than 90 it should return "You Can Register" - if the person is 90 or older it should return "You Don't Need To Register" */ -function canRegister(age) {} +function canRegister(age) { + if (age <= 12) { + return "You Are Too Young To Register"; + } else if (age > 12 && age < 90) { + return "You Can Register"; + } else { + return "You Don't Need To Register"; + } +} /* Complete the function so that it prints out to the console numbers in reverse order starting at @@ -45,7 +88,11 @@ function canRegister(age) {} ) */ -function countReverse(number) {} +function countReverse(number) { + for (let i = number; i >= 1; i--) { + console.log(i); + } +} /* ======= TESTS - DO NOT MODIFY ===== */ @@ -90,11 +137,11 @@ describe("printOddNumbers", () => { const consoleLogSpy = jest.spyOn(console, "log"); printOddNumbers(10); - expect(consoleLogSpy).toHaveBeenNthCalledWith(1,1); - expect(consoleLogSpy).toHaveBeenNthCalledWith(2,3); - expect(consoleLogSpy).toHaveBeenNthCalledWith(3,5); - expect(consoleLogSpy).toHaveBeenNthCalledWith(4,7); - expect(consoleLogSpy).toHaveBeenNthCalledWith(5,9); + expect(consoleLogSpy).toHaveBeenNthCalledWith(1, 1); + expect(consoleLogSpy).toHaveBeenNthCalledWith(2, 3); + expect(consoleLogSpy).toHaveBeenNthCalledWith(3, 5); + expect(consoleLogSpy).toHaveBeenNthCalledWith(4, 7); + expect(consoleLogSpy).toHaveBeenNthCalledWith(5, 9); consoleLogSpy.mockRestore(); }); @@ -141,13 +188,13 @@ describe("countReverse", () => { const consoleLogSpy = jest.spyOn(console, "log"); countReverse(7); - expect(consoleLogSpy).toHaveBeenNthCalledWith(1,7); - expect(consoleLogSpy).toHaveBeenNthCalledWith(2,6); - expect(consoleLogSpy).toHaveBeenNthCalledWith(3,5); - expect(consoleLogSpy).toHaveBeenNthCalledWith(4,4); - expect(consoleLogSpy).toHaveBeenNthCalledWith(5,3); - expect(consoleLogSpy).toHaveBeenNthCalledWith(6,2); - expect(consoleLogSpy).toHaveBeenNthCalledWith(7,1); + expect(consoleLogSpy).toHaveBeenNthCalledWith(1, 7); + expect(consoleLogSpy).toHaveBeenNthCalledWith(2, 6); + expect(consoleLogSpy).toHaveBeenNthCalledWith(3, 5); + expect(consoleLogSpy).toHaveBeenNthCalledWith(4, 4); + expect(consoleLogSpy).toHaveBeenNthCalledWith(5, 3); + expect(consoleLogSpy).toHaveBeenNthCalledWith(6, 2); + expect(consoleLogSpy).toHaveBeenNthCalledWith(7, 1); consoleLogSpy.mockRestore(); }); From 33f046a99710d11cdc80c156f77f3ad48a94c2d7 Mon Sep 17 00:00:00 2001 From: Heresh <108929624+HereshT@users.noreply.github.com> Date: Wed, 1 Mar 2023 10:19:05 +0000 Subject: [PATCH 2/6] Update 1-fix-functions.js --- mandatory/1-fix-functions.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mandatory/1-fix-functions.js b/mandatory/1-fix-functions.js index aee90474..223af9dc 100644 --- a/mandatory/1-fix-functions.js +++ b/mandatory/1-fix-functions.js @@ -13,7 +13,7 @@ function getMood(isHappy) { let isHappy = true; - if (isHappy) { + if (true) { return "I am happy"; } else { return "I am not happy"; From 5519c41dfc8d15110d31eeac99bad19840b7381a Mon Sep 17 00:00:00 2001 From: Heresh <108929624+HereshT@users.noreply.github.com> Date: Wed, 1 Mar 2023 10:30:26 +0000 Subject: [PATCH 3/6] Glasgow_6- Herish - Turki - JS - Core-1-Coursework-Week2 --- mandatory/1-fix-functions.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/mandatory/1-fix-functions.js b/mandatory/1-fix-functions.js index 223af9dc..e717616e 100644 --- a/mandatory/1-fix-functions.js +++ b/mandatory/1-fix-functions.js @@ -11,9 +11,7 @@ */ function getMood(isHappy) { - let isHappy = true; - - if (true) { + if (isHappy === true) { return "I am happy"; } else { return "I am not happy"; From 01c9307195365a5119e677fad0921928cf199197 Mon Sep 17 00:00:00 2001 From: Heresh <108929624+HereshT@users.noreply.github.com> Date: Wed, 1 Mar 2023 10:38:49 +0000 Subject: [PATCH 4/6] Update 1-fix-functions.js --- mandatory/1-fix-functions.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mandatory/1-fix-functions.js b/mandatory/1-fix-functions.js index e717616e..fc2cb7fc 100644 --- a/mandatory/1-fix-functions.js +++ b/mandatory/1-fix-functions.js @@ -18,6 +18,8 @@ function getMood(isHappy) { } } +//////////////////// + function greaterThan10(num) { if (num > 10) { return "num is greater than 10"; From 24487d7fd39b4900e66b5caabde1eb9b158c4fb4 Mon Sep 17 00:00:00 2001 From: Heresh <108929624+HereshT@users.noreply.github.com> Date: Wed, 1 Mar 2023 10:46:19 +0000 Subject: [PATCH 5/6] Glasgow_6 - HERISH TURKI - JS -Core-1-Coursework-Week2 Glasgow_6 - HERISH TURKI - JS -Core-1-Coursework-Week2 --- extra/1-factorial.js | 8 +++ mandatory/1-fix-functions.js | 12 ++--- mandatory/2-function-creation.js | 83 +++++++++++++++++++++++++------- 3 files changed, 78 insertions(+), 25 deletions(-) diff --git a/extra/1-factorial.js b/extra/1-factorial.js index da9f8e6c..4d2bf965 100644 --- a/extra/1-factorial.js +++ b/extra/1-factorial.js @@ -12,6 +12,14 @@ function factorial(input) { // TODO } +function factorial(input) { + let sum = 1; + for (let i = input; i > 0; i--) { + sum *= i; + } + return sum; +} + /* ======= TESTS - DO NOT MODIFY ===== */ describe("factorial", () => { diff --git a/mandatory/1-fix-functions.js b/mandatory/1-fix-functions.js index 6323604f..fc2cb7fc 100644 --- a/mandatory/1-fix-functions.js +++ b/mandatory/1-fix-functions.js @@ -10,20 +10,18 @@ */ -function getMood() { - let isHappy = true; - - if (isHappy) { +function getMood(isHappy) { + if (isHappy === true) { return "I am happy"; } else { return "I am not happy"; } } -function greaterThan10(num) { - let isBigEnough; +//////////////////// - if (isBigEnough) { +function greaterThan10(num) { + if (num > 10) { return "num is greater than 10"; } else { return "num is not big enough"; diff --git a/mandatory/2-function-creation.js b/mandatory/2-function-creation.js index d4590920..7d441464 100644 --- a/mandatory/2-function-creation.js +++ b/mandatory/2-function-creation.js @@ -4,7 +4,9 @@ 1. the user should be 18 or older 2. the user must be logged in */ -function isAcceptableUser(userAge, isLoggedIn) {} +function isAcceptableUser(userAge, isLoggedIn) { + return userAge >= 18 && isLoggedIn; +} /* Complete the function to apply discount percent based on how much is totalPrice in user cart. @@ -15,18 +17,51 @@ function isAcceptableUser(userAge, isLoggedIn) {} is applieds and 142.5 should be returned) */ -function applyDiscount(totalPrice) {} +function applyDiscount(totalPrice) { + let discount = 0; + if (totalPrice > 200) { + discount = 0.1; + } else if (totalPrice < 200) { + discount = 0.05; + } + return totalPrice - totalPrice * discount; +} + +// or + +// function applyDiscount(totalPrice) { +// if (totalPrice > 200){ +// return totalPrice * 0.9; +// } else { +// return totalPrice * 0.95; +// } +// } /* Complete the function to print to the console the odd numbers between 1 and limit (use a while loop): */ -function printOddNumbers(limit) {} +function printOddNumbers(limit) { + let baseNumber = 1; + + while (baseNumber <= limit) { + if (baseNumber % 2 !== 0) { + console.log(baseNumber); + } + baseNumber++; + } +} /* Complete the buyTwoGetTheCheapestFree function: if user buys two items, the cheapest item will be free! The function should return the price to be paid once the discount is applied. */ -function buyTwoGetTheCheapestFree(price1, price2) {} +function buyTwoGetTheCheapestFree(price1, price2) { + if (price1 >= price2) { + return price1; + } else { + return price2; + } +} /* Complete the function to determine if it is suitable for a person to register based on their age! @@ -34,7 +69,15 @@ function buyTwoGetTheCheapestFree(price1, price2) {} - if the person is older than 12 and younger than 90 it should return "You Can Register" - if the person is 90 or older it should return "You Don't Need To Register" */ -function canRegister(age) {} +function canRegister(age) { + if (age <= 12) { + return "You Are Too Young To Register"; + } else if (age > 12 && age < 90) { + return "You Can Register"; + } else { + return "You Don't Need To Register"; + } +} /* Complete the function so that it prints out to the console numbers in reverse order starting at @@ -45,7 +88,11 @@ function canRegister(age) {} ) */ -function countReverse(number) {} +function countReverse(number) { + for (let i = number; i >= 1; i--) { + console.log(i); + } +} /* ======= TESTS - DO NOT MODIFY ===== */ @@ -90,11 +137,11 @@ describe("printOddNumbers", () => { const consoleLogSpy = jest.spyOn(console, "log"); printOddNumbers(10); - expect(consoleLogSpy).toHaveBeenNthCalledWith(1,1); - expect(consoleLogSpy).toHaveBeenNthCalledWith(2,3); - expect(consoleLogSpy).toHaveBeenNthCalledWith(3,5); - expect(consoleLogSpy).toHaveBeenNthCalledWith(4,7); - expect(consoleLogSpy).toHaveBeenNthCalledWith(5,9); + expect(consoleLogSpy).toHaveBeenNthCalledWith(1, 1); + expect(consoleLogSpy).toHaveBeenNthCalledWith(2, 3); + expect(consoleLogSpy).toHaveBeenNthCalledWith(3, 5); + expect(consoleLogSpy).toHaveBeenNthCalledWith(4, 7); + expect(consoleLogSpy).toHaveBeenNthCalledWith(5, 9); consoleLogSpy.mockRestore(); }); @@ -141,13 +188,13 @@ describe("countReverse", () => { const consoleLogSpy = jest.spyOn(console, "log"); countReverse(7); - expect(consoleLogSpy).toHaveBeenNthCalledWith(1,7); - expect(consoleLogSpy).toHaveBeenNthCalledWith(2,6); - expect(consoleLogSpy).toHaveBeenNthCalledWith(3,5); - expect(consoleLogSpy).toHaveBeenNthCalledWith(4,4); - expect(consoleLogSpy).toHaveBeenNthCalledWith(5,3); - expect(consoleLogSpy).toHaveBeenNthCalledWith(6,2); - expect(consoleLogSpy).toHaveBeenNthCalledWith(7,1); + expect(consoleLogSpy).toHaveBeenNthCalledWith(1, 7); + expect(consoleLogSpy).toHaveBeenNthCalledWith(2, 6); + expect(consoleLogSpy).toHaveBeenNthCalledWith(3, 5); + expect(consoleLogSpy).toHaveBeenNthCalledWith(4, 4); + expect(consoleLogSpy).toHaveBeenNthCalledWith(5, 3); + expect(consoleLogSpy).toHaveBeenNthCalledWith(6, 2); + expect(consoleLogSpy).toHaveBeenNthCalledWith(7, 1); consoleLogSpy.mockRestore(); }); From 559ddd1713a423d1baadfa27fa5a0a205a314be7 Mon Sep 17 00:00:00 2001 From: Heresh <108929624+HereshT@users.noreply.github.com> Date: Wed, 1 Mar 2023 11:09:35 +0000 Subject: [PATCH 6/6] Extra done. --- extra/1-factorial.js | 2 -- mandatory/1-fix-functions.js | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/extra/1-factorial.js b/extra/1-factorial.js index 4d2bf965..db0f0792 100644 --- a/extra/1-factorial.js +++ b/extra/1-factorial.js @@ -10,9 +10,7 @@ function factorial(input) { // TODO -} -function factorial(input) { let sum = 1; for (let i = input; i > 0; i--) { sum *= i; diff --git a/mandatory/1-fix-functions.js b/mandatory/1-fix-functions.js index fc2cb7fc..d48f4794 100644 --- a/mandatory/1-fix-functions.js +++ b/mandatory/1-fix-functions.js @@ -18,7 +18,7 @@ function getMood(isHappy) { } } -//////////////////// +//////////s///////////////// function greaterThan10(num) { if (num > 10) {