diff --git a/exercises/B-hello-world/exercise.js b/exercises/B-hello-world/exercise.js index b179ee953..4bbda6b3c 100644 --- a/exercises/B-hello-world/exercise.js +++ b/exercises/B-hello-world/exercise.js @@ -1 +1,5 @@ console.log("Hello world"); +console.log("Hello world. I just started learning JavaScript."); +console.log("My name is Amarachi. I am a Code Your Future Trainee.") +console.log("I am happy"); +console.log(2); diff --git a/exercises/C-variables/exercise.js b/exercises/C-variables/exercise.js index a6bbb9786..a17507f15 100644 --- a/exercises/C-variables/exercise.js +++ b/exercises/C-variables/exercise.js @@ -1,3 +1,5 @@ // 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..af2bb4d3c 100644 --- a/exercises/D-strings/exercise.js +++ b/exercises/D-strings/exercise.js @@ -1,3 +1,4 @@ // Start by creating a variable `message` - +let message = "This is a string." console.log(message); +console.log(typeof (message)); diff --git a/exercises/E-strings-concatenation/exercise.js b/exercises/E-strings-concatenation/exercise.js index 2cffa6a81..59304d39a 100644 --- a/exercises/E-strings-concatenation/exercise.js +++ b/exercises/E-strings-concatenation/exercise.js @@ -1,3 +1,5 @@ // Start by creating a variable `message` - +const greeting = " Hello, my name is "; +const myName = "Amarachi"; +const message = greeting + myName; console.log(message); diff --git a/exercises/F-strings-methods/exercise.js b/exercises/F-strings-methods/exercise.js index 2cffa6a81..ed9a93f9d 100644 --- a/exercises/F-strings-methods/exercise.js +++ b/exercises/F-strings-methods/exercise.js @@ -1,3 +1,15 @@ // Start by creating a variable `message` - -console.log(message); +// let myName = "Amarachi"; +// myName = myName.length; +// console.log(myName); +// let myMessage = "My name is "; +// let myName = "Amarachi"; +// let secondMessage = " and my name is "; +// let nameLength = myName.length; +// let thirdMessage = " characters long" +// let message = myMessage + myName + secondMessage + nameLength + thirdMessage; +// console.log(message); + let myName = "Amarachi"; + let nameLength = myName.length; + let message = `My name is ${myName} and my name is ${nameLength} characters long`; + console.log(message); \ No newline at end of file diff --git a/exercises/F-strings-methods/exercise2.js b/exercises/F-strings-methods/exercise2.js index b4b46943d..fd4ed0cdb 100644 --- a/exercises/F-strings-methods/exercise2.js +++ b/exercises/F-strings-methods/exercise2.js @@ -1,3 +1,6 @@ const name = " Daniel "; +const nameTrim = name.trim(); +const nameLength = nameTrim.length; +const message = `My name is ${nameTrim} 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..3d027cd3f 100644 --- a/exercises/G-numbers/exercise.js +++ b/exercises/G-numbers/exercise.js @@ -1 +1,5 @@ // Start by creating a variables `numberOfStudents` and `numberOfMentors` +let numberOfStudents = 20; +let numberOfMentors = 13; +let totalNumber = numberOfStudents + numberOfMentors; +console.log(totalNumber); \ No newline at end of file diff --git a/exercises/I-floats/exercise.js b/exercises/I-floats/exercise.js index a5bbcd852..f95e282a6 100644 --- a/exercises/I-floats/exercise.js +++ b/exercises/I-floats/exercise.js @@ -1,2 +1,11 @@ -var numberOfStudents = 15; -var numberOfMentors = 8; +// var numberOfStudents = 15; +// var numberOfMentors = 8; +// var totalNumber = numberOfStudents + numberOfMentors; +// var percentStudents = numberOfStudents * 100 / totalNumber; +// console.log(Math.round(percentStudents)); + +let numberOfStudents = 15; +let numberOfMentors = 8; +let totalNumber = numberOfStudents + numberOfMentors; +let percentMentors = (numberOfMentors * 100) / totalNumber; +console.log(Math.round(percentMentors)); diff --git a/exercises/J-functions/exercise.js b/exercises/J-functions/exercise.js index 0ae5850e5..89d5f4290 100644 --- a/exercises/J-functions/exercise.js +++ b/exercises/J-functions/exercise.js @@ -1,7 +1,8 @@ function halve(number) { // complete the function here + return number / 2; } -var result = halve(12); +let result = halve(12); console.log(result); 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..d96efd1a8 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(a, b) { // Calculate the result of the function and return it + return a * b; } // 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..97f4b4b88 100644 --- a/exercises/K-functions-parameters/exercise2.js +++ b/exercises/K-functions-parameters/exercise2.js @@ -1,5 +1,8 @@ // Declare your function first +function divide(a, b) { + return a / b; +} -var result = divide(3, 4); +let 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..9d217b843 100644 --- a/exercises/K-functions-parameters/exercise3.js +++ b/exercises/K-functions-parameters/exercise3.js @@ -1,5 +1,7 @@ // Write your function here - -var greeting = createGreeting("Daniel"); +function createGreeting(string) { + return ("Hello, my name is " + string); +} +let greeting = createGreeting("Daniel"); console.log(greeting); diff --git a/exercises/K-functions-parameters/exercise4.js b/exercises/K-functions-parameters/exercise4.js index 7ab44589e..0ab8d5ac9 100644 --- a/exercises/K-functions-parameters/exercise4.js +++ b/exercises/K-functions-parameters/exercise4.js @@ -1,5 +1,8 @@ // Declare your function first - +function add(a, b) { + return a + b; +} // 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..20b599547 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, num) { + return ("Hello, my name is " + name + " and I'm " + num + " 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..03db43f13 100644 --- a/exercises/L-functions-nested/exercise.js +++ b/exercises/L-functions-nested/exercise.js @@ -1,5 +1,23 @@ -var mentor1 = "Daniel"; -var mentor2 = "Irina"; -var mentor3 = "Mimi"; -var mentor4 = "Rob"; -var mentor5 = "Yohannes"; +// var mentor1 = "Daniel"; +// var mentor2 = "Irina"; +// var mentor3 = "Mimi"; +// var mentor4 = "Rob"; +// var mentor5 = "Yohannes"; +function shoutyGreeting(name) { + return ("Hello " + name); +} +let mentor1 = shoutyGreeting("Daniel"); +console.log(mentor1.toUpperCase()); + +let mentor2 = shoutyGreeting("Irina"); +console.log(mentor2.toUpperCase()); + +let mentor3 = shoutyGreeting("Mimi"); +console.log(mentor3.toUpperCase()); + +let mentor4 = shoutyGreeting("Rob"); +console.log(mentor4.toUpperCase()); + +let mentor5 = shoutyGreeting("Yohannes"); +console.log(mentor5.toUpperCase()); + diff --git a/extra/1-currency-conversion.js b/extra/1-currency-conversion.js index 75b3c6aab..258067f49 100644 --- a/extra/1-currency-conversion.js +++ b/extra/1-currency-conversion.js @@ -5,7 +5,15 @@ Write a function that converts a price to USD (exchange rate is 1.4 $ to £) */ -function convertToUSD() {} +function convertToUSD(number) { + return number * 1.4; + +} +let myNum = convertToUSD(32); +console.log(myNum); + +myNum = convertToUSD(50); +console.log(myNum); /* CURRENCY CONVERSION @@ -15,12 +23,20 @@ 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(number) { + return parseFloat(((number * 99 / 100) * 5.7).toFixed(2)); +} + +let myConvert = convertToBRL(30); +console.log(myConvert); + +myConvert = convertToBRL(1.5); +console.log(myConvert); /* ======= TESTS - DO NOT MODIFY ===== There are some Tests in this file that will help you work out if your code is working. -To run the tests for just this one file, type `npm test -- --testPathPattern 1-currency-conversion` into your terminal +To run the tests for just this one file, type `` into your terminal (Reminder: You must have run `npm install` one time before this will work!) */ diff --git a/extra/2-piping.js b/extra/2-piping.js index b4f8c4c1b..6bd5aa300 100644 --- a/extra/2-piping.js +++ b/extra/2-piping.js @@ -16,26 +16,47 @@ the final result to the variable goodCode */ -function add() { +function add(a, b) { + return a + b; } -function multiply() { +let num = add(1, 3); +console.log(num); + +num = add(2.4, 5); +console.log(num); + +function multiply(a, b) { + return a * b; } -function format() { +let myNum = multiply(2, 3); +console.log(myNum); +function format(number) { + return `£${number}`; } +let myInt = format(16); +console.log(myInt); + +myInt = format(10.1); +console.log(myInt); + const startingValue = 2; // Why can this code be seen as bad practice? Comment your answer. -let badCode = +let badCode = format(multiply(2, add(10, startingValue))); // Because it is difficult to read. /* BETTER PRACTICE */ +let addBetter = add(10, startingValue); +let multiplyBetter = multiply(2, addBetter); +let formatBetter = format(multiplyBetter); -let goodCode = +let goodCode = formatBetter; +console.log(goodCode); /* ======= 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 46f65f928..d82376262 100644 --- a/extra/3-magic-8-ball.js +++ b/extra/3-magic-8-ball.js @@ -14,12 +14,13 @@ Below are the possible answers: - ## Very positive + ## 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. @@ -42,13 +43,42 @@ 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.',]; + +const myAnswer = [...veryPositive, ...positive, ...negative, ...veryNegative,]; // This should log "The ball has shaken!" // and return the answer. function shakeBall() { //Write your code in here -} + console.log("The ball has shaken!"); + return myAnswer[Math.round(Math.random() * myAnswer.length)]; +} /* This function should say whether the answer it is given is - very positive @@ -101,7 +131,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" diff --git a/mandatory/1-syntax-errors.js b/mandatory/1-syntax-errors.js index a10cc9ac2..8b76fe957 100644 --- a/mandatory/1-syntax-errors.js +++ b/mandatory/1-syntax-errors.js @@ -1,18 +1,20 @@ // 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"; +} +let greet = introduceMe("Sonjide", 27); +console.log(greet); function getTotal(a, b) { - total = a ++ b; - - return "The total is total"; + return "The total is " + (a + b); } - +let result = getTotal(14, 14); +console.log(result); /* =================================================== ======= TESTS - DO NOT MODIFY BELOW THIS LINE ===== diff --git a/mandatory/2-logic-error.js b/mandatory/2-logic-error.js index 9cca7603b..6883b1ef7 100644 --- a/mandatory/2-logic-error.js +++ b/mandatory/2-logic-error.js @@ -1,18 +1,30 @@ // 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(); } +let myWord = trimWord(" codeyourfuture "); +console.log(myWord.trim()); +myWord = trimWord(" codeyourfuture teaches coding "); +console.log(myWord.trim()); + + function getStringLength(word) { - return "word".length(); + return word.length; + } +getStringLength("Turtles"); +getStringLength("A wild sentence appeared!"); + function multiply(a, b, c) { - a * b * c; - return; + return a * b * c; + } - +let result = multiply(2, 3, 6); +result = multiply(2, 3, 4); +console.log(result); /* =================================================== ======= TESTS - DO NOT MODIFY BELOW THIS LINE ===== diff --git a/mandatory/3-function-output.js b/mandatory/3-function-output.js index 5a953ba60..808da627b 100644 --- a/mandatory/3-function-output.js +++ b/mandatory/3-function-output.js @@ -1,17 +1,36 @@ // Add comments to explain what this function does. You're meant to use Google! function getRandomNumber() { - return Math.random() * 10; + return Math.random() * 10; // returns a random number from 0 to 9. } // Add comments to explain what this function does. You're meant to use Google! function combine2Words(word1, word2) { - return word1.concat(word2); + return word1.concat(word2); // the concat() method joins two or more strings. It does not change the existing strings. It returns a new string. } +// 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; +// } +// let result = concatenate("code ", "your ","future"); +// console.log(result); +// result = concatenate("I ","like ","pizza"); +// console.log(result); +// result = concatenate("I ","am ",13); +// console.log(result); + 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; } +let word = concatenate("code", "your", "future"); +console.log(word); +word = concatenate("I", "like", "pizza"); +console.log(word); +word = concatenate("I", "am", 13); +console.log(word); + + /* =================================================== diff --git a/mandatory/4-tax.js b/mandatory/4-tax.js index ba77c7ae2..2ee9cf50c 100644 --- a/mandatory/4-tax.js +++ b/mandatory/4-tax.js @@ -5,8 +5,16 @@ Sales tax is 20% of the price of the product. */ -function calculateSalesTax() {} +function calculateSalesTax(num) { + return num * 20 / 100 + num; +} +let sales = calculateSalesTax(15); +console.log(sales); +sales = calculateSalesTax(17.50); +console.log(sales); +sales = calculateSalesTax(34); +console.log(sales); /* CURRENCY FORMATTING =================== @@ -17,7 +25,16 @@ function calculateSalesTax() {} Remember that the prices must include the sales tax (hint: you already wrote a function for this!) */ -function addTaxAndFormatCurrency() {} +function addTaxAndFormatCurrency(calculateSalesTax) { + let ProductTax = calculateSalesTax + (calculateSalesTax * 20) / 100; + let taxFormat = `£${ProductTax.toFixed(2)}`; + return taxFormat; +} +console.log(addTaxAndFormatCurrency(15)); +console.log(addTaxAndFormatCurrency(17.5)); +console.log(addTaxAndFormatCurrency(34)); + + /* =================================================== diff --git a/package.json b/package.json index 93e0861e3..6adc714df 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,9 @@ "description": "Exercises for JS1 Week 1", "license": "CC-BY-SA-4.0", "scripts": { - "test": "jest" + "test": "jest", + "extra-tests": "jest extra" + }, "repository": { "type": "git", @@ -15,6 +17,7 @@ }, "jest": { "setupFilesAfterEnv": ["jest-extended"], + "projects": [ { "displayName": "mandatory",