From 65214ccdcc3036f96990c8834cee08e264eb9369 Mon Sep 17 00:00:00 2001 From: Aj Date: Mon, 28 Jun 2021 19:00:28 +0100 Subject: [PATCH 1/7] Solve exercises A-E --- exercises/B-hello-world/exercise.js | 2 ++ exercises/C-variables/exercise.js | 3 +++ exercises/D-strings/exercise.js | 4 ++++ exercises/E-strings-concatenation/exercise.js | 7 ++++++- 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/exercises/B-hello-world/exercise.js b/exercises/B-hello-world/exercise.js index b179ee953..b97cd7579 100644 --- a/exercises/B-hello-world/exercise.js +++ b/exercises/B-hello-world/exercise.js @@ -1 +1,3 @@ console.log("Hello world"); + +console.log("Hi All, just trying console.log") diff --git a/exercises/C-variables/exercise.js b/exercises/C-variables/exercise.js index a6bbb9786..dfa05020b 100644 --- a/exercises/C-variables/exercise.js +++ b/exercises/C-variables/exercise.js @@ -1,3 +1,6 @@ // Start by creating a variable `greeting` +let greeting = "Hello world" +console.log(greeting); +console.log(greeting); console.log(greeting); diff --git a/exercises/D-strings/exercise.js b/exercises/D-strings/exercise.js index 2cffa6a81..5b12aa209 100644 --- a/exercises/D-strings/exercise.js +++ b/exercises/D-strings/exercise.js @@ -1,3 +1,7 @@ // Start by creating a variable `message` +let message = "This is a string"; +let typeOfMessage = typeof message; + console.log(message); +console.log(typeOfMessage); \ No newline at end of file diff --git a/exercises/E-strings-concatenation/exercise.js b/exercises/E-strings-concatenation/exercise.js index 2cffa6a81..69edf7aac 100644 --- a/exercises/E-strings-concatenation/exercise.js +++ b/exercises/E-strings-concatenation/exercise.js @@ -1,3 +1,8 @@ // Start by creating a variable `message` -console.log(message); +let greetingStart = "Hello, my name is "; +let myName = "Aj"; + +let greeting = greetingStart + myName; + +console.log(greeting); From 844a27eaaf16d42164ebf5588f9f27faf43fc93a Mon Sep 17 00:00:00 2001 From: Aj Date: Mon, 28 Jun 2021 19:29:27 +0100 Subject: [PATCH 2/7] Solution F-I --- exercises/F-strings-methods/exercise.js | 3 +++ exercises/F-strings-methods/exercise2.js | 4 ++++ exercises/G-numbers/exercise.js | 7 +++++++ exercises/I-floats/exercise.js | 12 ++++++++++-- 4 files changed, 24 insertions(+), 2 deletions(-) diff --git a/exercises/F-strings-methods/exercise.js b/exercises/F-strings-methods/exercise.js index 2cffa6a81..19665a29d 100644 --- a/exercises/F-strings-methods/exercise.js +++ b/exercises/F-strings-methods/exercise.js @@ -1,3 +1,6 @@ // Start by creating a variable `message` +let name = "Daniel"; +let myNameLength = name.length; +let message = "My name is " + name + " and my name is " + myNameLength + " characters long"; console.log(message); diff --git a/exercises/F-strings-methods/exercise2.js b/exercises/F-strings-methods/exercise2.js index b4b46943d..449b48fa4 100644 --- a/exercises/F-strings-methods/exercise2.js +++ b/exercises/F-strings-methods/exercise2.js @@ -1,3 +1,7 @@ const name = " Daniel "; +let nameLength = name.trim().length; +let message = "My name is " + name.trim() + " and my name is " + nameLength + " characters long"; + console.log(message); + diff --git a/exercises/G-numbers/exercise.js b/exercises/G-numbers/exercise.js index 49e7bc00b..3f6f351b4 100644 --- a/exercises/G-numbers/exercise.js +++ b/exercises/G-numbers/exercise.js @@ -1 +1,8 @@ // Start by creating a variables `numberOfStudents` and `numberOfMentors` + +let numberOfStudents = 15; +let numberOfMentors = 8; + +let totalStudentsMentors = numberOfMentors + numberOfStudents; + +console.log("Total number of students and mentors: " + totalStudentsMentors); diff --git a/exercises/I-floats/exercise.js b/exercises/I-floats/exercise.js index a5bbcd852..ca4c63043 100644 --- a/exercises/I-floats/exercise.js +++ b/exercises/I-floats/exercise.js @@ -1,2 +1,10 @@ -var numberOfStudents = 15; -var numberOfMentors = 8; +let numberOfStudents = 15; +let numberOfMentors = 8; +let totalNumber = numberOfStudents + numberOfMentors; + +let percentageOfStudents = (numberOfStudents / totalNumber) * 100; +percentageOfStudents = Math.round(percentageOfStudents); +let percentageOfMentors = (numberOfMentors / totalNumber) * 100; + +console.log("Percentage students: " + percentageOfStudents + "%"); +console.log("Percentage mentors: " + Math.round(percentageOfMentors) + "%"); From c2e43f6f3f16a2fe6072dd6f9540d3c764141a71 Mon Sep 17 00:00:00 2001 From: Aj Date: Mon, 28 Jun 2021 20:02:55 +0100 Subject: [PATCH 3/7] All exercises --- exercises/J-functions/exercise.js | 7 ++++- exercises/J-functions/exercise2.js | 3 +- exercises/K-functions-parameters/exercise.js | 5 ++-- exercises/K-functions-parameters/exercise2.js | 4 +++ exercises/K-functions-parameters/exercise3.js | 4 +++ exercises/K-functions-parameters/exercise4.js | 4 +++ exercises/K-functions-parameters/exercise5.js | 4 ++- exercises/L-functions-nested/exercise.js | 29 +++++++++++++++++++ 8 files changed, 55 insertions(+), 5 deletions(-) diff --git a/exercises/J-functions/exercise.js b/exercises/J-functions/exercise.js index 0ae5850e5..cb6e5fc0c 100644 --- a/exercises/J-functions/exercise.js +++ b/exercises/J-functions/exercise.js @@ -1,7 +1,12 @@ function halve(number) { // complete the function here + return number / 2; } -var result = halve(12); +let result = halve(12); +let result1 = halve(6); +let result2 = halve(24); console.log(result); +// console.log(result1); +// console.log(result2); \ No newline at end of file diff --git a/exercises/J-functions/exercise2.js b/exercises/J-functions/exercise2.js index 82ef5e780..db0a8b857 100644 --- a/exercises/J-functions/exercise2.js +++ b/exercises/J-functions/exercise2.js @@ -1,7 +1,8 @@ function triple(number) { // complete function here + return number * 3; } -var result = triple(12); +let result = triple(12); console.log(result); diff --git a/exercises/K-functions-parameters/exercise.js b/exercises/K-functions-parameters/exercise.js index 8d5db5e69..7047bf155 100644 --- a/exercises/K-functions-parameters/exercise.js +++ b/exercises/K-functions-parameters/exercise.js @@ -1,9 +1,10 @@ // Complete the function so that it takes input parameters -function multiply() { +function multiply(num1, num2) { // Calculate the result of the function and return it + return num1 * num2; } // Assign the result of calling the function the variable `result` -var result = multiply(3, 4); +let result = multiply(3, 4); console.log(result); diff --git a/exercises/K-functions-parameters/exercise2.js b/exercises/K-functions-parameters/exercise2.js index db7a8904b..aadd90433 100644 --- a/exercises/K-functions-parameters/exercise2.js +++ b/exercises/K-functions-parameters/exercise2.js @@ -1,5 +1,9 @@ // Declare your function first +function divide(num1, num2) { + return num1 / num2; +} + var result = divide(3, 4); console.log(result); diff --git a/exercises/K-functions-parameters/exercise3.js b/exercises/K-functions-parameters/exercise3.js index 537e9f4ec..124378ddd 100644 --- a/exercises/K-functions-parameters/exercise3.js +++ b/exercises/K-functions-parameters/exercise3.js @@ -1,5 +1,9 @@ // Write your function here +function createGreeting(name) { + return "Hello, my name is " + name; +} + var greeting = createGreeting("Daniel"); console.log(greeting); diff --git a/exercises/K-functions-parameters/exercise4.js b/exercises/K-functions-parameters/exercise4.js index 7ab44589e..9b3734a32 100644 --- a/exercises/K-functions-parameters/exercise4.js +++ b/exercises/K-functions-parameters/exercise4.js @@ -1,5 +1,9 @@ // Declare your function first +function add(num1, num2) { + return num1 + num2; +} // Call the function and assign to a variable `sum` +let sum = add(13, 124); console.log(sum); diff --git a/exercises/K-functions-parameters/exercise5.js b/exercises/K-functions-parameters/exercise5.js index 7c5bcd605..fa64315fb 100644 --- a/exercises/K-functions-parameters/exercise5.js +++ b/exercises/K-functions-parameters/exercise5.js @@ -1,5 +1,7 @@ // Declare your function here - +function createLongGreeting(name, age) { + return "Hello, my name is " + name + " and I'm " + age + " years old"; +} const greeting = createLongGreeting("Daniel", 30); console.log(greeting); diff --git a/exercises/L-functions-nested/exercise.js b/exercises/L-functions-nested/exercise.js index a5d377442..f768da2f4 100644 --- a/exercises/L-functions-nested/exercise.js +++ b/exercises/L-functions-nested/exercise.js @@ -3,3 +3,32 @@ var mentor2 = "Irina"; var mentor3 = "Mimi"; var mentor4 = "Rob"; var mentor5 = "Yohannes"; + + +function upper(mentor) { + return mentor.toUpperCase(); +} + +function shoutyGreetings(mentor) { + let mentorInUpper = upper(mentor); + let greetings = "HELLO " + mentorInUpper; + return greetings; +} + +console.log(shoutyGreetings(mentor1)); +console.log(shoutyGreetings(mentor2)); +console.log(shoutyGreetings(mentor3)); +console.log(shoutyGreetings(mentor4)); +console.log(shoutyGreetings(mentor5)); + +// console.log("This Part is done with loops"); +// // using loops +// function shoutyGreetingsLoop(mentors) { +// for (let i = 0; i < mentors.length; i++) { +// mentors[i] = mentors[i].toUpperCase(); +// console.log("HELLO " + mentors[i]); +// } +// } + +// let mentors = ["Daniel", "Irina", "Mimi", "Rob", "Yohannes"]; +// let greetings = shoutyGreetingsLoop(mentors); \ No newline at end of file From a35e87148abdd90aa7863513580e01cb54ec4c86 Mon Sep 17 00:00:00 2001 From: Aj Date: Mon, 28 Jun 2021 23:10:09 +0100 Subject: [PATCH 4/7] extra execrise --- extra/1-currency-conversion.js | 22 +++++++++++++++++++--- extra/2-piping.js | 32 ++++++++++++++++---------------- package.json | 4 +++- 3 files changed, 38 insertions(+), 20 deletions(-) diff --git a/extra/1-currency-conversion.js b/extra/1-currency-conversion.js index d82e59480..a37a29264 100644 --- a/extra/1-currency-conversion.js +++ b/extra/1-currency-conversion.js @@ -5,17 +5,33 @@ Write a function that converts a price to USD (exchange rate is 1.4 $ to £) */ -function convertToUSD() {} +function convertToUSD(pound) { + let usd = pound * 1.4; + return usd; +} + +console.log(convertToUSD(32)); +console.log(convertToUSD(50)); /* CURRENCY CONVERSION =================== The business is now breaking into the Brazilian market Write a new function for converting to the Brazilian real (exchange rate is 5.7 BRL to £) - They have also decided that they should add a 1% fee to all foreign transactions, which means you only convert 99% of the £ to BRL. + They have also decided that they should add a 1% fee to all foreign transactions, + which means you only convert 99% of the £ to BRL. */ -function convertToBRL() {} +function convertToBRL(pound) { + let fees = pound * 0.01; + pound = pound - fees; + let brl = pound * 5.7; + // let fees = 0.01 * brl + // brl = brl - fees; + return brl; +} + +console.log(convertToBRL(30)); /* ======= TESTS - DO NOT MODIFY ===== There are some Tests in this file that will help you work out if your code is working. diff --git a/extra/2-piping.js b/extra/2-piping.js index 9c8ebc76a..bd4d01237 100644 --- a/extra/2-piping.js +++ b/extra/2-piping.js @@ -16,37 +16,37 @@ the final result to the variable goodCode */ -function add() { - +function add(num1, num2) { + return num1 + num2; } -function multiply() { - +function multiply(num1, num2) { + return num1 * num2; } -function format() { - +function format(num) { + return "£" + num; } const startingValue = 2; // Why can this code be seen as bad practice? Comment your answer. -let badCode = +let badCode = add(startingValue, 10); /* BETTER PRACTICE */ let goodCode = -/* ======= TESTS - DO NOT MODIFY ===== -There are some Tests in this file that will help you work out if your code is working. - -To run these tests type `npm run extraTo run the tests for just this one file, type `npm run extra-tests -- --testPathPattern 2-piping` into your terminal -(Reminder: You must have run `npm install` one time before this will work!) -*/ + /* ======= TESTS - DO NOT MODIFY ===== + There are some Tests in this file that will help you work out if your code is working. + + To run these tests type `npm run extraTo run the tests for just this one file, type `npm run extra-tests -- --testPathPattern 2-piping` into your terminal + (Reminder: You must have run `npm install` one time before this will work!) + */ -test("add function - case 1 works", () => { - expect(add(1, 3)).toEqual(4); -}); + test("add function - case 1 works", () => { + expect(add(1, 3)).toEqual(4); + }); test("add function - case 2 works", () => { expect(add(2.4, 5)).toEqual(7.4); diff --git a/package.json b/package.json index 58555936d..778df9683 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,9 @@ "url": "https://github.com/CodeYourFuture/JavaScript-Core-1-Coursework-Week1/issues" }, "jest": { - "setupFilesAfterEnv": ["jest-extended"] + "setupFilesAfterEnv": [ + "jest-extended" + ] }, "homepage": "https://github.com/CodeYourFuture/JavaScript-Core-1-Coursework-Week1#readme", "devDependencies": { From 29249c579b65100e26da3d854608ad5e702db8f8 Mon Sep 17 00:00:00 2001 From: Aj Date: Fri, 2 Jul 2021 10:08:07 +0100 Subject: [PATCH 5/7] mandatory solutions --- mandatory/1-syntax-errors.js | 12 ++++++------ mandatory/2-logic-error.js | 7 +++---- mandatory/3-function-output.js | 5 +++++ mandatory/4-tax.js | 11 +++++++++-- 4 files changed, 23 insertions(+), 12 deletions(-) diff --git a/mandatory/1-syntax-errors.js b/mandatory/1-syntax-errors.js index a10cc9ac2..cc9c2abf1 100644 --- a/mandatory/1-syntax-errors.js +++ b/mandatory/1-syntax-errors.js @@ -1,16 +1,16 @@ // There are syntax errors in this code - can you fix it to pass the tests? -function addNumbers(a b c) { +function addNumbers(a, b, c) { return a + b + c; } -function introduceMe(name, age) - return "Hello, my name is " + name "and I am " age + "years old"; +function introduceMe(name, age) { + return "Hello, my name is " + name + " and I am " + age + " years old"; +} function getTotal(a, b) { - total = a ++ b; - - return "The total is total"; + total = a + b; + return "The total is " + total; } /* diff --git a/mandatory/2-logic-error.js b/mandatory/2-logic-error.js index 9cca7603b..37c4ebc15 100644 --- a/mandatory/2-logic-error.js +++ b/mandatory/2-logic-error.js @@ -1,16 +1,15 @@ // The syntax for this function is valid but it has an error, find it and fix it. function trimWord(word) { - return wordtrim(); + return word.trim(); } function getStringLength(word) { - return "word".length(); + return word.length; } function multiply(a, b, c) { - a * b * c; - return; + return a * b * c; } /* diff --git a/mandatory/3-function-output.js b/mandatory/3-function-output.js index 5a953ba60..934b7f953 100644 --- a/mandatory/3-function-output.js +++ b/mandatory/3-function-output.js @@ -1,16 +1,21 @@ // Add comments to explain what this function does. You're meant to use Google! function getRandomNumber() { + /* Math.random() return floating-point, pseudo-random number between 0 (inclusive) + and 1 (exclusive) and then the function multiply the number by 10 and return the result*/ return Math.random() * 10; } // Add comments to explain what this function does. You're meant to use Google! function combine2Words(word1, word2) { + /* The function use concat pre-built function to return a single string + that is the concatenation of word1 added to word2. */ return word1.concat(word2); } function concatenate(firstWord, secondWord, thirdWord) { // Write the body of this function to concatenate three words together. // Look at the test case below to understand what this function is expected to return. + return firstWord.concat(" ",secondWord," ", thirdWord); } /* diff --git a/mandatory/4-tax.js b/mandatory/4-tax.js index ba77c7ae2..3205724b0 100644 --- a/mandatory/4-tax.js +++ b/mandatory/4-tax.js @@ -5,7 +5,11 @@ Sales tax is 20% of the price of the product. */ -function calculateSalesTax() {} +function calculateSalesTax(itemPrice) { + let salesTax = 0.2; + let taxToPay = salesTax * itemPrice; + return itemPrice + taxToPay; +} /* CURRENCY FORMATTING @@ -17,7 +21,10 @@ function calculateSalesTax() {} Remember that the prices must include the sales tax (hint: you already wrote a function for this!) */ -function addTaxAndFormatCurrency() {} +function addTaxAndFormatCurrency(itemPrice) { + let taxedPrice = calculateSalesTax(itemPrice); + return "£" + taxedPrice.toFixed(2); +} /* =================================================== From 9a54a823d8db22fbdb95125ff608a6b2d1b3b1c0 Mon Sep 17 00:00:00 2001 From: Aj Date: Fri, 2 Jul 2021 10:23:57 +0100 Subject: [PATCH 6/7] update extra exercises --- extra/1-currency-conversion.js | 9 +-------- extra/2-piping.js | 14 ++++++++------ 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/extra/1-currency-conversion.js b/extra/1-currency-conversion.js index a37a29264..8b1e93927 100644 --- a/extra/1-currency-conversion.js +++ b/extra/1-currency-conversion.js @@ -9,10 +9,6 @@ function convertToUSD(pound) { let usd = pound * 1.4; return usd; } - -console.log(convertToUSD(32)); -console.log(convertToUSD(50)); - /* CURRENCY CONVERSION =================== @@ -28,11 +24,8 @@ function convertToBRL(pound) { let brl = pound * 5.7; // let fees = 0.01 * brl // brl = brl - fees; - return brl; + return parseFloat(brl.toFixed(2)); } - -console.log(convertToBRL(30)); - /* ======= TESTS - DO NOT MODIFY ===== There are some Tests in this file that will help you work out if your code is working. diff --git a/extra/2-piping.js b/extra/2-piping.js index bd4d01237..4e101920a 100644 --- a/extra/2-piping.js +++ b/extra/2-piping.js @@ -31,22 +31,24 @@ function format(num) { const startingValue = 2; // Why can this code be seen as bad practice? Comment your answer. -let badCode = add(startingValue, 10); +let badCode = format(multiply(add(startingValue, 10), 2)); /* BETTER PRACTICE */ +let summation = add(startingValue, 10); +let multiplication = multiply(summation, 2); -let goodCode = +let goodCode = format(multiplication); - /* ======= TESTS - DO NOT MODIFY ===== +/* ======= TESTS - DO NOT MODIFY ===== There are some Tests in this file that will help you work out if your code is working. To run these tests type `npm run extraTo run the tests for just this one file, type `npm run extra-tests -- --testPathPattern 2-piping` into your terminal (Reminder: You must have run `npm install` one time before this will work!) */ - test("add function - case 1 works", () => { - expect(add(1, 3)).toEqual(4); - }); +test("add function - case 1 works", () => { + expect(add(1, 3)).toEqual(4); +}); test("add function - case 2 works", () => { expect(add(2.4, 5)).toEqual(7.4); From 31e24251cf64160423d7e1387405421443b57219 Mon Sep 17 00:00:00 2001 From: Aj Date: Fri, 2 Jul 2021 10:32:55 +0100 Subject: [PATCH 7/7] update extra --- extra/3-magic-8-ball.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/extra/3-magic-8-ball.js b/extra/3-magic-8-ball.js index f3adbefa5..ac7fe341b 100644 --- a/extra/3-magic-8-ball.js +++ b/extra/3-magic-8-ball.js @@ -101,7 +101,9 @@ test("magic 8 ball returns different values each time", () => { ); } - let seenPositivities = new Set(Array.from(seenAnswers.values()).map(checkAnswer)); + let seenPositivities = new Set( + Array.from(seenAnswers.values()).map(checkAnswer) + ); if (seenPositivities.size < 2) { throw Error( "Expected to random answers with different positivities each time shakeBall was called, but always got the same one"