diff --git a/exercises/B-hello-world/exercise.js b/exercises/B-hello-world/exercise.js index b179ee953..d7bdcb9c8 100644 --- a/exercises/B-hello-world/exercise.js +++ b/exercises/B-hello-world/exercise.js @@ -1 +1,12 @@ console.log("Hello world"); +console.log("Hello everyone. I am now trying using console.log with different kind of inputs."); +console.log(23); +console.log(("is this(using a nested paranthesis) gonna cause an error?")); +console.log("My name is", "Omer"); +console.log((("I am now using three paranthesis inside console.log."))); + +const name = "omer"; +const hobby = "coding"; + +console.log("Hi everyone. My name is", name, ", and my hobby is", hobby); +console.log("Hi everyone. My name is" + name + "and my hobby is" + hobby); diff --git a/exercises/C-variables/exercise.js b/exercises/C-variables/exercise.js index a6bbb9786..ab0f32a84 100644 --- a/exercises/C-variables/exercise.js +++ b/exercises/C-variables/exercise.js @@ -1,3 +1,8 @@ // Start by creating a variable `greeting` +const 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..bebb533d6 100644 --- a/exercises/D-strings/exercise.js +++ b/exercises/D-strings/exercise.js @@ -1,3 +1,7 @@ // Start by creating a variable `message` +const message = "This is a string"; +const messageType = typeof message; + console.log(message); +console.log(messageType); diff --git a/exercises/E-strings-concatenation/exercise.js b/exercises/E-strings-concatenation/exercise.js index 2cffa6a81..98df479d8 100644 --- a/exercises/E-strings-concatenation/exercise.js +++ b/exercises/E-strings-concatenation/exercise.js @@ -1,3 +1,7 @@ // Start by creating a variable `message` +const greeting = "Hello, my name is "; +const name = "Omer"; +const message = greeting + name; + console.log(message); diff --git a/exercises/F-strings-methods/exercise.js b/exercises/F-strings-methods/exercise.js index 2cffa6a81..c7d492aae 100644 --- a/exercises/F-strings-methods/exercise.js +++ b/exercises/F-strings-methods/exercise.js @@ -1,3 +1,8 @@ // Start by creating a variable `message` +const name = "Omer"; +const nameLength = name.length; +const message = ` My name is ${name} and my name is ${nameLength} characters long. `; + console.log(message); +console.log(message.trim()); diff --git a/exercises/F-strings-methods/exercise2.js b/exercises/F-strings-methods/exercise2.js index b4b46943d..5bced5523 100644 --- a/exercises/F-strings-methods/exercise2.js +++ b/exercises/F-strings-methods/exercise2.js @@ -1,3 +1,7 @@ const name = " Daniel "; +const nameTrim = name.trim(); +const nameLength = name.length; +const message = `My name is ${nameTrim} and my name is 6 characters long`; console.log(message); + diff --git a/exercises/G-numbers/exercise.js b/exercises/G-numbers/exercise.js index 49e7bc00b..10e49ed5f 100644 --- a/exercises/G-numbers/exercise.js +++ b/exercises/G-numbers/exercise.js @@ -1 +1,8 @@ // Start by creating a variables `numberOfStudents` and `numberOfMentors` + +const numberOfStudents = 15; +const numberOfMentors = 8; +const message = `Number of students: ${numberOfStudents} +Number of mentors: ${numberOfMentors} +Total number of students and mentors: ${numberOfStudents + numberOfMentors}`; +console.log(message); diff --git a/exercises/I-floats/exercise.js b/exercises/I-floats/exercise.js index a5bbcd852..212abbceb 100644 --- a/exercises/I-floats/exercise.js +++ b/exercises/I-floats/exercise.js @@ -1,2 +1,18 @@ -var numberOfStudents = 15; -var numberOfMentors = 8; +const numberOfStudents = 15; +const numberOfMentors = 8; +const studentsPercentage = Math.round(100 *(numberOfStudents / (numberOfStudents + numberOfMentors))); +const mentorsPercentage = Math.round(100 * + (numberOfMentors / (numberOfStudents + numberOfMentors))); + +const message = `Percentage students: ${studentsPercentage}% +Percentage mentors: ${mentorsPercentage}%`; + +const message2 = `Percentage students: ${Math.round( + 100 * (numberOfStudents / (numberOfStudents + numberOfMentors)) +)}% +Percentage mentors: ${Math.round( + 100 * (numberOfMentors / (numberOfStudents + numberOfMentors)) +)}%`; + +console.log(message); +console.log(message2); diff --git a/exercises/J-functions/exercise.js b/exercises/J-functions/exercise.js index 0ae5850e5..aa63cf3c2 100644 --- a/exercises/J-functions/exercise.js +++ b/exercises/J-functions/exercise.js @@ -1,7 +1,10 @@ function halve(number) { // complete the function here + return number / 2; } -var result = halve(12); +const result = halve(12); +const result2 = halve(36); console.log(result); +console.log(result2); diff --git a/exercises/J-functions/exercise2.js b/exercises/J-functions/exercise2.js index 82ef5e780..552e61635 100644 --- a/exercises/J-functions/exercise2.js +++ b/exercises/J-functions/exercise2.js @@ -1,7 +1,9 @@ function triple(number) { // complete function here + return number * 3; } -var result = triple(12); +const result = triple(12); console.log(result); + diff --git a/exercises/K-functions-parameters/exercise.js b/exercises/K-functions-parameters/exercise.js index 8d5db5e69..d1e24aa82 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); +const 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..d3a3988d6 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); + +const 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..76e33a9d9 100644 --- a/exercises/K-functions-parameters/exercise3.js +++ b/exercises/K-functions-parameters/exercise3.js @@ -1,5 +1,8 @@ // Write your function here +function createGreeting(name) { + return `Hello, my name is ${name}`; +} -var greeting = createGreeting("Daniel"); +const greeting = createGreeting("Daniel"); console.log(greeting); diff --git a/exercises/K-functions-parameters/exercise4.js b/exercises/K-functions-parameters/exercise4.js index 7ab44589e..4d7706573 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` +const 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..01bd81eb5 100644 --- a/exercises/K-functions-parameters/exercise5.js +++ b/exercises/K-functions-parameters/exercise5.js @@ -1,4 +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); diff --git a/exercises/L-functions-nested/exercise.js b/exercises/L-functions-nested/exercise.js index a5d377442..4d16d043e 100644 --- a/exercises/L-functions-nested/exercise.js +++ b/exercises/L-functions-nested/exercise.js @@ -1,5 +1,43 @@ -var mentor1 = "Daniel"; -var mentor2 = "Irina"; -var mentor3 = "Mimi"; -var mentor4 = "Rob"; -var mentor5 = "Yohannes"; +const mentor1 = "Daniel"; +const mentor2 = "Irina"; +const mentor3 = "Mimi"; +const mentor4 = "Rob"; +const mentor5 = "Yohannes"; + + +function createShoutyGreeting (name) { + name = name.toUpperCase(); + console.log(`HELLO ${name}`); +} + +createShoutyGreeting(mentor1); +createShoutyGreeting(mentor2); +createShoutyGreeting(mentor3); +createShoutyGreeting(mentor4); +createShoutyGreeting(mentor5); + + + + +// Another way of doing the exercise +/* +function nameInUpperCase(name) { + return name.toUpperCase(); +} + +function createShoutyGreeting() { + const name1 = nameInUpperCase(mentor1); + const name2 = nameInUpperCase(mentor2); + const name3 = nameInUpperCase(mentor3); + const name4 = nameInUpperCase(mentor4); + const name5 = nameInUpperCase(mentor5); + console.log(`HELLO ${name1}`); + console.log(`HELLO ${name2}`); + console.log(`HELLO ${name3}`); + console.log(`HELLO ${name4}`); + console.log(`HELLO ${name5}`); +} + +createShoutyGreeting(); +*/ + diff --git a/extra/1-currency-conversion.js b/extra/1-currency-conversion.js index 07391e15f..90bad306b 100644 --- a/extra/1-currency-conversion.js +++ b/extra/1-currency-conversion.js @@ -5,7 +5,10 @@ Write a function that converts a price to USD (exchange rate is 1.4 $ to £) */ -function convertToUSD() {} +function convertToUSD(pound) { + const usd = pound * 1.4; + return usd; +} /* CURRENCY FORMATTING @@ -15,7 +18,11 @@ function convertToUSD() {} 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) { + const afterFee = pound * 0.99; + const brl = afterFee * 5.7; + return parseFloat(brl.toFixed(2)); +} /* ======= TESTS - DO NOT MODIFY ===== There are some Tests in this file that will help you work out if your code is working. @@ -37,5 +44,5 @@ test("convertToBRL function works for £30", () => { }); test("convertToBRL function works for £0.99", () => { - expect(convertToBRL(1.5)).toEqual(8.46); + expect(convertToBRL(1.50)).toEqual(8.46); }); diff --git a/extra/2-piping.js b/extra/2-piping.js index 9c8ebc76a..521036b12 100644 --- a/extra/2-piping.js +++ b/extra/2-piping.js @@ -16,26 +16,30 @@ 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 = format(multiply(add(startingValue, 10), 2)); //This code is not easy to read and understand /* BETTER PRACTICE */ -let goodCode = +const addedNumber = add(startingValue, 10); +const multiplied = multiply(addedNumber, 2); +const formatted = format(multiplied); + +let goodCode = formatted; /* ======= 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/3-magic-8-ball.js b/extra/3-magic-8-ball.js index 7626877e7..0e9692f7c 100644 --- a/extra/3-magic-8-ball.js +++ b/extra/3-magic-8-ball.js @@ -43,12 +43,78 @@ Very doubtful. */ +let question; + +const answers = [ + //Very positive + "It is certain.", + "It is decidedly so.", + "Without a doubt.", + "Yes - definitely.", + "You may rely on it.", + //Positive + "As I see it, yes.", + "Most likely.", + "Outlook good.", + "Yes.", + "Signs point to yes.", + //Negative + "Reply hazy, try again.", + "Ask again later.", + "Better not tell you now.", + "Cannot predict now.", + "Concentrate and ask again.", + //Very Negative + "Don't count on it.", + "My reply is no.", + "My sources say no.", + "Outlook not so good.", + "Very doubtful.", +]; + +const veryPositive = [ + "It is certain.", + "It is decidedly so.", + "Without a doubt.", + "Yes - definitely.", + "You may rely on it.", +]; + +const positive = [ + "As I see it, yes.", + "Most likely.", + "Outlook good.", + "Yes.", + "Signs point to yes.", +]; + +const negative = [ + "Reply hazy, try again.", + "Ask again later.", + "Better not tell you now.", + "Cannot predict now.", + "Concentrate and ask again.", +]; + +const veryNegative = [ + "Don't count on it.", + "My reply is no.", + "My sources say no.", + "Outlook not so good.", + "Very doubtful.", +]; + // This should log "The ball has shaken!" // and return the answer. function shakeBall() { //Write your code in here + console.log("The ball has shaken!"); + const answer = answers[Math.floor(Math.random() * answers.length)]; + return answer; } +shakeBall(); + /* This function should say whether the answer it is given is - very positive @@ -60,8 +126,46 @@ function shakeBall() { */ function checkAnswer(answer) { //Write your code in here + let index; + for (let i = 0; i < answers.length; i++) { + if (answer === answers[i]) { + index = i; + } else { + console.log("Answer is not recognized. Please input an answer in answers array."); + } + } + if (index < 5) { + return "very positive"; + } else if (index >= 5 && index < 10) { + return "positive"; + } else if (index >= 10 && index < 15) { + return "negative"; + } else { + return "very negative"; + } +} + +checkAnswer(shakeBall()); + +/* Another way of doing the exercise; used arrays for "very positive", "positive", "negative", and "very negative" answers, and then used includes method in checkAnswer function + +function checkAnswer(answer) { + //Write your code in here + if (veryPositive.includes(answer)) { + console.log(`very positive`); + } else if (positive.includes(answer)) { + console.log(`positive`); + } else if (negative.includes(answer)) { + console.log(`negative`); + } else if (veryNegative.includes(answer)) { + console.log(`very negative`); + } else { + console.log(`something unexpected happened`); + } } +*/ + /* ================================== ======= TESTS - DO NOT MODIFY ===== diff --git a/mandatory/1-syntax-errors.js b/mandatory/1-syntax-errors.js index a10cc9ac2..67626215a 100644 --- a/mandatory/1-syntax-errors.js +++ b/mandatory/1-syntax-errors.js @@ -1,16 +1,18 @@ // 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; + const total = a + b; - return "The total is total"; + return "The total is " + total; } /* diff --git a/mandatory/2-logic-error.js b/mandatory/2-logic-error.js index b90d41dd1..8d7956ad7 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 getWordLength(word) { - return "word".length(); + return word.length; } function multiply(a, b, c) { - a * b * c; - return; + return a * b * c; } /* @@ -34,12 +33,12 @@ test("trimWord doesn't remove whitespace in the middle of the string", () => { ); }); -test("getStringLength returns the length of a word", () => { - expect(getStringLength("Turtles")).toEqual(7); +test("getWordLength returns the length of a word", () => { + expect(getWordLength("Turtles")).toEqual(7); }); -test("getStringLength returns the length of a sentence", () => { - expect(getStringLength("A wild sentence appeared!")).toEqual(25); +test("getWordLength returns the length of a sentence", () => { + expect(getWordLength("A wild sentence appeared!")).toEqual(25); }); test("multiply multiplies numbers", () => { diff --git a/mandatory/3-function-output.js b/mandatory/3-function-output.js index 5a953ba60..6f7158f4e 100644 --- a/mandatory/3-function-output.js +++ b/mandatory/3-function-output.js @@ -1,9 +1,11 @@ // Add comments to explain what this function does. You're meant to use Google! +/*Math.random() function gives a random number between 0 and 1, get the number with the function and multiply it with 10 */ function getRandomNumber() { return Math.random() * 10; } // Add comments to explain what this function does. You're meant to use Google! +/* concat() method concatenates the input given, such as string or array; in this example it concatenates word2 to the end of word1 */ function combine2Words(word1, word2) { return word1.concat(word2); } @@ -11,6 +13,7 @@ function combine2Words(word1, 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} ${secondWord} ${thirdWord}`; } /* diff --git a/mandatory/4-tax.js b/mandatory/4-tax.js index ba77c7ae2..553f98e15 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(priceProduct) { + const tax = priceProduct * 0.2; + const priceTotal = priceProduct + tax; + return priceTotal; +} /* CURRENCY FORMATTING @@ -17,7 +21,11 @@ function calculateSalesTax() {} Remember that the prices must include the sales tax (hint: you already wrote a function for this!) */ -function addTaxAndFormatCurrency() {} +function addTaxAndFormatCurrency(priceProduct) { + const priceTotal = calculateSalesTax(priceProduct); + const format = priceTotal.toFixed(2); + return `£${format}`; +} /* =================================================== 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": {