From 41601c562953d4e82b79cafa04a717f6b30a85ce Mon Sep 17 00:00:00 2001 From: AdrianIlovan <62564810+AdrianIlovan@users.noreply.github.com> Date: Tue, 11 Apr 2023 22:13:53 +0100 Subject: [PATCH 1/3] Finished Mandatory --- mandatory/1-fix-functions.js | 8 +--- mandatory/2-function-creation.js | 82 ++++++++++++++++++++++++-------- 2 files changed, 63 insertions(+), 27 deletions(-) diff --git a/mandatory/1-fix-functions.js b/mandatory/1-fix-functions.js index 6323604f..5ed2e5a8 100644 --- a/mandatory/1-fix-functions.js +++ b/mandatory/1-fix-functions.js @@ -10,9 +10,7 @@ */ -function getMood() { - let isHappy = true; - +function getMood(isHappy) { if (isHappy) { return "I am happy"; } else { @@ -21,9 +19,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..7a264e4a 100644 --- a/mandatory/2-function-creation.js +++ b/mandatory/2-function-creation.js @@ -4,29 +4,57 @@ 1. the user should be 18 or older 2. the user must be logged in */ -function isAcceptableUser(userAge, isLoggedIn) {} - +function isAcceptableUser(userAge, isLoggedIn) { + if (userAge > 18) { + return true; + } else { + return false; + } + + if (isLoggedIn) { + return true; + } else { + return false; + } +} /* Complete the function to apply discount percent based on how much is totalPrice in user cart. - When the total price is greater than 200, a 10% discount should be applied - When the total price is less than 200, a 5% discount should be applied The function should return the new price to be paid (e.g. if the totalPrice is 150, a 5% discount - is applieds and 142.5 should be returned) + is applied and 142.5 should be returned) */ -function applyDiscount(totalPrice) {} - +function applyDiscount(totalPrice) { + if (totalPrice > 200) { + return totalPrice - totalPrice * 0.1; // for 10% discount + } else { + return totalPrice - totalPrice * 0.05; // for 5% discount + } +} /* 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 i = 1; + while (i <= limit) { + if (i % 2 !== 0) { + console.log(i); + } + i++; + } +} /* 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) { + let cheaperPrice = price1 < price2 ? price1 : price2; + let totalPrice = price1 + price2; + return totalPrice - cheaperPrice; +} /* Complete the function to determine if it is suitable for a person to register based on their age! @@ -34,7 +62,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 +81,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 +130,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 +181,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 a247d3f14577efd7d342fc98520105d451acfc19 Mon Sep 17 00:00:00 2001 From: AdrianIlovan <62564810+AdrianIlovan@users.noreply.github.com> Date: Wed, 12 Apr 2023 20:05:00 +0300 Subject: [PATCH 2/3] Mandatory update-fix-function --- 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 5ed2e5a8..e717616e 100644 --- a/mandatory/1-fix-functions.js +++ b/mandatory/1-fix-functions.js @@ -11,7 +11,7 @@ */ function getMood(isHappy) { - if (isHappy) { + if (isHappy === true) { return "I am happy"; } else { return "I am not happy"; From 904fbafc5e1599a6e15d2169d0cc786121e0848f Mon Sep 17 00:00:00 2001 From: AdrianIlovan <62564810+AdrianIlovan@users.noreply.github.com> Date: Wed, 12 Apr 2023 20:43:54 +0300 Subject: [PATCH 3/3] Finished Mandatory --- mandatory/2-function-creation.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/mandatory/2-function-creation.js b/mandatory/2-function-creation.js index 7a264e4a..10cc517e 100644 --- a/mandatory/2-function-creation.js +++ b/mandatory/2-function-creation.js @@ -5,17 +5,17 @@ 2. the user must be logged in */ function isAcceptableUser(userAge, isLoggedIn) { - if (userAge > 18) { + if (userAge >= 18 && isLoggedIn === true) { return true; } else { return false; } - if (isLoggedIn) { - return true; - } else { - return false; - } + // if (isLoggedIn) { + // return true; + // } else { + // return false; + // } } /* Complete the function to apply discount percent based on how much is totalPrice in user cart. @@ -63,9 +63,9 @@ function buyTwoGetTheCheapestFree(price1, price2) { - if the person is 90 or older it should return "You Don't Need To Register" */ function canRegister(age) { - if (age < 12) { + if (age <= 12) { return "You Are Too Young To Register"; - } else if (age > 12 && age < 90) { + } else if (age >= 12 && age < 90) { return "You Can Register"; } else { return "You Don't Need To Register";