diff --git a/exercises/B-hello-world/exercise.js b/exercises/B-hello-world/exercise.js index b179ee953..783cd8f80 100644 --- a/exercises/B-hello-world/exercise.js +++ b/exercises/B-hello-world/exercise.js @@ -1 +1,3 @@ console.log("Hello world"); +console.log("Hello there javaScript"); +console.log(); diff --git a/exercises/C-variables/exercise.js b/exercises/C-variables/exercise.js index a6bbb9786..bb60c9438 100644 --- a/exercises/C-variables/exercise.js +++ b/exercises/C-variables/exercise.js @@ -1,3 +1,6 @@ -// Start by creating a variable `greeting` +// Start by creating a letiable `greeting` +let greeting = "helloWorld"; -console.log(greeting); +for (let i = 0; i < 3; i++) { + console.log(greeting); +} diff --git a/exercises/D-strings/exercise.js b/exercises/D-strings/exercise.js index 2cffa6a81..1522692a2 100644 --- a/exercises/D-strings/exercise.js +++ b/exercises/D-strings/exercise.js @@ -1,3 +1,6 @@ -// Start by creating a variable `message` +// Start by creating a letiable `message` +let message = "Coding is best"; +let typeOfmessage = typeof message; console.log(message); +console.log(typeOfmessage); diff --git a/exercises/E-strings-concatenation/exercise.js b/exercises/E-strings-concatenation/exercise.js index 2cffa6a81..c7cd5c11a 100644 --- a/exercises/E-strings-concatenation/exercise.js +++ b/exercises/E-strings-concatenation/exercise.js @@ -1,3 +1,6 @@ -// Start by creating a variable `message` +// Start by creating a letiable `message` +let greet = "hello"; +let name = "Andile"; +let message = `${greet} my name is ${name}`; console.log(message); diff --git a/exercises/F-strings-methods/exercise.js b/exercises/F-strings-methods/exercise.js index 2cffa6a81..6a54dda01 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` +// Start by creating a letiable `message` + +let name = "Andile"; +let message = `my name is ${name} and its ${name.length} characters long`; console.log(message); diff --git a/exercises/F-strings-methods/exercise2.js b/exercises/F-strings-methods/exercise2.js index b4b46943d..a29195e61 100644 --- a/exercises/F-strings-methods/exercise2.js +++ b/exercises/F-strings-methods/exercise2.js @@ -1,3 +1,5 @@ const name = " Daniel "; +let name2 = name.trim(); +let message = `My name is ${name2} and its ${name2.length} characters long`; console.log(message); diff --git a/exercises/G-numbers/exercise.js b/exercises/G-numbers/exercise.js index 49e7bc00b..74976b7fd 100644 --- a/exercises/G-numbers/exercise.js +++ b/exercises/G-numbers/exercise.js @@ -1 +1,7 @@ -// Start by creating a variables `numberOfStudents` and `numberOfMentors` +// Start by creating a letiables `numberOfStudents` and `numberOfMentors` +let numberOfMentors = 8; +let numberOfStudents = 15; +let total = numberOfMentors + numberOfStudents; +console.log(`Total number of students:${numberOfStudents}`); +console.log(`Total number of mentors ${numberOfMentors}`); +console.log(`The number of students and mentors is: ${total}`); diff --git a/exercises/I-floats/exercise.js b/exercises/I-floats/exercise.js index a5bbcd852..6e0f0ba1b 100644 --- a/exercises/I-floats/exercise.js +++ b/exercises/I-floats/exercise.js @@ -1,2 +1,8 @@ -var numberOfStudents = 15; -var numberOfMentors = 8; +let numberOfStudents = 15; +let numberOfMentors = 8; +let studentPec = + (numberOfStudents / (numberOfMentors + numberOfStudents)) * 100; + +let mentorPec = (numberOfMentors / (numberOfMentors + numberOfStudents)) * 100; +console.log("Percentage of students: " + Math.round(studentPec)) + "%"; +console.log("Percentage of mentors: " + Math.round(mentorPec)) + "%"; diff --git a/exercises/J-functions/exercise.js b/exercises/J-functions/exercise.js index 0ae5850e5..662b42af7 100644 --- a/exercises/J-functions/exercise.js +++ b/exercises/J-functions/exercise.js @@ -1,7 +1,10 @@ function halve(number) { - // complete the function here + let answer = number / 2; + return answer; } -var result = halve(12); +let result = halve(12); console.log(result); +console.log(halve(10)); +console.log(halve(14)); diff --git a/exercises/J-functions/exercise2.js b/exercises/J-functions/exercise2.js index 82ef5e780..76b8866ed 100644 --- a/exercises/J-functions/exercise2.js +++ b/exercises/J-functions/exercise2.js @@ -1,7 +1,10 @@ function triple(number) { - // complete function here + var answer = number * 3; + return answer; } var result = triple(12); console.log(result); +console.log(triple(5)); +console.log(triple(3)); diff --git a/exercises/K-functions-parameters/exercise.js b/exercises/K-functions-parameters/exercise.js index 8d5db5e69..cb0b0d927 100644 --- a/exercises/K-functions-parameters/exercise.js +++ b/exercises/K-functions-parameters/exercise.js @@ -1,5 +1,6 @@ // Complete the function so that it takes input parameters -function multiply() { +function multiply(num1, num2) { + return num1 * num2; // Calculate the result of the function and return it } diff --git a/exercises/K-functions-parameters/exercise2.js b/exercises/K-functions-parameters/exercise2.js index db7a8904b..8f0f0680b 100644 --- a/exercises/K-functions-parameters/exercise2.js +++ b/exercises/K-functions-parameters/exercise2.js @@ -1,5 +1,7 @@ // 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..c2ac2bc1c 100644 --- a/exercises/K-functions-parameters/exercise3.js +++ b/exercises/K-functions-parameters/exercise3.js @@ -1,4 +1,7 @@ // Write your function here +function createGreeting(name) { + return `Hello ${name}`; +} var greeting = createGreeting("Daniel"); diff --git a/exercises/K-functions-parameters/exercise4.js b/exercises/K-functions-parameters/exercise4.js index 7ab44589e..7abf6d1b8 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(num1, num2) { + return num1 + num2; +} // Call the function and assign to a variable `sum` - +var 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..00508aeeb 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 am ${age} years old.`; +} const greeting = createLongGreeting("Daniel", 30); diff --git a/exercises/L-functions-nested/excercise2.js b/exercises/L-functions-nested/excercise2.js new file mode 100644 index 000000000..99d023bad --- /dev/null +++ b/exercises/L-functions-nested/excercise2.js @@ -0,0 +1,17 @@ +var mentor1 = "Daniel"; +var mentor2 = "Irina"; +var mentor3 = "Mimi"; +var mentor4 = "Rob"; +var mentor5 = "Yohannes"; + +function capitalLetter(name) { + return (name = name.toUpperCase()); +} +function greeting(name) { + return "hello " + capitalLetter(name); +} +console.log(greeting(mentor1)); +console.log(greeting(mentor2)); +console.log(greeting(mentor3)); +console.log(greeting(mentor4)); +console.log(greeting(mentor5)); diff --git a/exercises/L-functions-nested/exercise.js b/exercises/L-functions-nested/exercise.js index a5d377442..7bf909d9e 100644 --- a/exercises/L-functions-nested/exercise.js +++ b/exercises/L-functions-nested/exercise.js @@ -1,5 +1,11 @@ -var mentor1 = "Daniel"; -var mentor2 = "Irina"; -var mentor3 = "Mimi"; -var mentor4 = "Rob"; -var mentor5 = "Yohannes"; +//This function calculates the percentages. +//provide the name of group you wish to calculate its percentage on name parameter +function percentage(name, numberOfGroup, total) { + let result = (numberOfGroup / total) * 100; + function message() { + return `Percentages of ${name}: ${result}`; + } + return message(); +} +console.log(percentage("Student", 40, 400)); +console.log(percentage("Mentors", 360, 400)); diff --git a/extra/1-currency-conversion.js b/extra/1-currency-conversion.js index 70a2fe863..ff18fdc62 100644 --- a/extra/1-currency-conversion.js +++ b/extra/1-currency-conversion.js @@ -5,7 +5,9 @@ Write a function that converts a price to USD (exchange rate is 1.4 $ to £) */ -function convertToUSD() {} +function convertToUSD(euro) { + return euro * 1.4; +} /* CURRENCY FORMATTING @@ -15,7 +17,10 @@ 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(euro) { + let fee = (5.7 / 100) * 99; + return euro * fee; +} /* ======= 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 067dd0f5b..6fc4b806c 100644 --- a/extra/2-piping.js +++ b/extra/2-piping.js @@ -6,36 +6,37 @@ - one that multiplies 2 numbers together - one that formats a number so it's returned as a string with a £ sign before it (e.g. 20 -> £20) - 2. Using the variable startingValue as input, perform the following operations using your functions all - on one line (assign the result to the variable badCode): + 2. Using the letiable startingValue as input, perform the following operations using your functions all + on one line (assign the result to the letiable badCode): - add 10 to startingValue - multiply the result by 2 - format it 3. Write a more readable version of what you wrote in step 2 under the BETTER PRACTICE comment. Assign - the final result to the variable goodCode + the final result to the letiable 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 +const startingValue = 2; // Why can this code be seen as bad practice? Comment your answer. -let badCode = -/* BETTER PRACTICE */ +let badCode = "£" + (startingValue + add(10, 1) * multiply(1, 2)); -let goodCode = +/* BETTER PRACTICE */ +let answer = (startingValue + add(5, 5)) * multiply(1, 2); +let goodCode = "£" + answer; /* ======= TESTS - DO NOT MODIFY ===== There are some Tests in this file that will help you work out if your code is working. @@ -43,22 +44,24 @@ There are some Tests in this file that will help you work out if your code is wo To run these tests type `node 2-piping.js` into your terminal */ -const util = require('util'); +const util = require("util"); function test(test_name, actual, expected) { - let status; - if (actual === expected) { - status = "PASSED"; - } else { - status = `FAILED: expected: ${util.inspect(expected)} but your code returned: ${util.inspect(actual)}`; - } - - console.log(`${test_name}: ${status}`); + let status; + if (actual === expected) { + status = "PASSED"; + } else { + status = `FAILED: expected: ${util.inspect( + expected + )} but your code returned: ${util.inspect(actual)}`; + } + + console.log(`${test_name}: ${status}`); } -test('add function - case 1 works', add(1,3), 4) -test('add function - case 2 works', add(2.4,5), 7.4) -test('multiply function works', multiply(2,3), 6) -test('format function works', format(16), "£16") -test('badCode variable correctly assigned', badCode, "£24") -test('goodCode variable correctly assigned', goodCode, "£24") +test("add function - case 1 works", add(1, 3), 4); +test("add function - case 2 works", add(2.4, 5), 7.4); +test("multiply function works", multiply(2, 3), 6); +test("format function works", format(16), "£16"); +test("badCode letiable correctly assigned", badCode, "£24"); +test("goodCode letiable correctly assigned", goodCode, "£24"); diff --git a/extra/3-magic-8-ball.js b/extra/3-magic-8-ball.js index e32182cfe..aa011d87d 100644 --- a/extra/3-magic-8-ball.js +++ b/extra/3-magic-8-ball.js @@ -46,6 +46,39 @@ // This should log "The ball has shaken!" // and return the answer. function shakeBall() { + console.log("The ball has shaken!"); + let array1 = [ + [ + "It is certain.", + "It is decidedly so.", + "Without a doubt.", + "Yes - definitely.", + "You may rely on it.", + ], + [ + "As I see it, yes.", + "Most likely.", + "Outlook good.", + "Yes.", + "Signs point to yes.", + ], + + [ + " Reply hazy, try again.", + "Ask again later.", + "Better not tell you now.", + "Cannot predict now.", + "Concentrate and ask again.", + ], + [ + "Don't count on it.", + "My reply is no.", + " My sources say no.", + "Outlook not so good.", + "Very doubtful.", + ], + ]; + return array1[Math.floor(Math.random() * 3)][Math.floor(Math.random() * 3)]; //Write your code in here } @@ -59,7 +92,16 @@ function shakeBall() { This function should expect to be called with any value which was returned by the shakeBall function. */ function checkAnswer(answer) { - //Write your code in here + let positivity = ["very positive", "positive", "negative", "very negative"]; + if (answer === "It is decidedly so.") { + return positivity[0]; + } else if (answer === "My reply is no.") { + return positivity[3]; + } else if (answer === "It is decidedly so.") { + return positivity[0]; + } else if (answer === "My reply is no.") { + } + return positivity[Math.floor(Math.random() * 3)]; } /* diff --git a/mandatory/1-syntax-errors.js b/mandatory/1-syntax-errors.js index 0a21afd1b..b4a25d2f8 100644 --- a/mandatory/1-syntax-errors.js +++ b/mandatory/1-syntax-errors.js @@ -1,16 +1,17 @@ // There are syntax errors in this code - can you fix it to pass the tests? -function addNumbers(a b c) { - return 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; + total = a + b; - return "The total is total" + return "The total is total"; } /* @@ -24,19 +25,25 @@ To run these tests type `node 1-syntax-errors.js` into your terminal =================================================== */ -const util = require('util'); +const util = require("util"); function test(test_name, actual, expected) { - let status; - if (actual === expected) { - status = "PASSED"; - } else { - status = `FAILED: expected: ${util.inspect(expected)} but your function returned: ${util.inspect(actual)}`; - } - - console.log(`${test_name}: ${status}`); + let status; + if (actual === expected) { + status = "PASSED"; + } else { + status = `FAILED: expected: ${util.inspect( + expected + )} but your function returned: ${util.inspect(actual)}`; + } + + console.log(`${test_name}: ${status}`); } test("fixed addNumbers function - case 1", addNumbers(3, 4, 6), 13); -test("fixed introduceMe function", introduceMe("Sonjide", 27), "Hello, my name is Sonjide and I am 27 years old"); +test( + "fixed introduceMe function", + introduceMe("Sonjide", 27), + "Hello, my name is Sonjide and I am 27 years old" +); test("fixed getTotal function", getTotal(23, 5), "The total is 28"); diff --git a/mandatory/2-logic-error.js b/mandatory/2-logic-error.js index 3c578ad87..1f1245b39 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; } /* diff --git a/mandatory/3-function-output.js b/mandatory/3-function-output.js index c9221a200..90b9d3f40 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! +// The function picks a random number everytime the code runs and multiplies it by ten function getNumber() { return Math.random() * 10; } // Add comments to explain what this function does. You're meant to use Google! +// The function concatenates w1 and w2 function s(w1, w2) { return w1.concat(w2); } @@ -11,6 +13,7 @@ function s(w1, w2) { 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 c9e41c691..eb30c07a1 100644 --- a/mandatory/4-tax.js +++ b/mandatory/4-tax.js @@ -5,7 +5,10 @@ Sales tax is 20% of the price of the product */ -function calculateSalesTax() {} +function calculateSalesTax(num) { + var tax = (num / 100) * 20; + return num + tax; +} /* CURRENCY FORMATTING @@ -17,7 +20,9 @@ function calculateSalesTax() {} Remember that the prices must include the sales tax (hint: you already wrote a function for this!) */ -function addTaxAndFormatCurrency() {} +function addTaxAndFormatCurrency(num) { + return `£${calculateSalesTax(num).toFixed(2)}`; +} /* ===================================================