diff --git a/exercises/A-setup-ide/README.md b/exercises/A-setup-ide/README.md index 1412871b6..de230419b 100644 --- a/exercises/A-setup-ide/README.md +++ b/exercises/A-setup-ide/README.md @@ -2,12 +2,12 @@ There are some tools that will help you to write code. One of these, [Prettier]( ### 1. Install prettier -* In Visual Studio open the extensions panel (see https://code.visualstudio.com/docs/editor/extension-gallery#_browse-and-install-extensions) -* Search for `Prettier - Code formatter` -* Click install on the top result +- In Visual Studio open the extensions panel (see https://code.visualstudio.com/docs/editor/extension-gallery#_browse-and-install-extensions) +- Search for `Prettier - Code formatter` +- Click install on the top result ### 2. Enable formatting on save -* In Visual Studio open the settings file (see https://code.visualstudio.com/docs/getstarted/settings#_creating-user-and-workspace-settings) -* Search for `editor format` -* Set `editor.formatOnSave` and `editor.formatOnPaste` to true +- In Visual Studio open the settings file (see https://code.visualstudio.com/docs/getstarted/settings#_creating-user-and-workspace-settings) +- Search for `editor format` +- Set `editor.formatOnSave` and `editor.formatOnPaste` to true diff --git a/exercises/B-hello-world/exercise.js b/exercises/B-hello-world/exercise.js index b179ee953..1093e3b6c 100644 --- a/exercises/B-hello-world/exercise.js +++ b/exercises/B-hello-world/exercise.js @@ -1 +1,12 @@ console.log("Hello world"); +console.log('\n' + "Hello world, I just started learning JavaScript!"); + +var name = 'Liew'; +var num = 1234; +var quote = ' is learning JavaScript!'; +var noQuoteMark = testing; + +console.log('\n' + name + ' ' + num + quote); +console.log('\n' + 12345678); + +console.log(noQuoteMark); //uncaught Reference Error: testing is not defined \ No newline at end of file diff --git a/exercises/C-variables/exercise.js b/exercises/C-variables/exercise.js index a6bbb9786..8cfe874e1 100644 --- a/exercises/C-variables/exercise.js +++ b/exercises/C-variables/exercise.js @@ -1,3 +1,7 @@ // 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..7f59514df 100644 --- a/exercises/D-strings/exercise.js +++ b/exercises/D-strings/exercise.js @@ -1,3 +1,13 @@ // Start by creating a variable `message` +var message = 'This is a string'; + +var messageType = typeof message; + +var testNum = 123456; +var testNumType = typeof testNum; console.log(message); +console.log(messageType); + +console.log('\n' + testNum); +console.log(testNumType); diff --git a/exercises/E-strings-concatenation/exercise.js b/exercises/E-strings-concatenation/exercise.js index 2cffa6a81..2a0f74566 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` -console.log(message); +var greeting = 'Hello, my name is '; +var name = 'Liew'; + +console.log(greeting + name); diff --git a/exercises/F-strings-methods/exercise.js b/exercises/F-strings-methods/exercise.js index 2cffa6a81..bc3544595 100644 --- a/exercises/F-strings-methods/exercise.js +++ b/exercises/F-strings-methods/exercise.js @@ -1,3 +1,11 @@ // Start by creating a variable `message` +var name = 'Liew'; +var nameLength = name.length; +var nameLowerCase = name.toLowerCase(); +var nameExtraWhiteSpace = ' Liew'; + +console.log('My name is ' + name + ' and my name is ' + nameLength + ' characters long'); +console.log('My name is ' + nameLowerCase + ' and my name is ' + nameLength + ' characters long'); +console.log('My name is ' + nameExtraWhiteSpace.trim() + ' and my name is ' + nameLength + ' characters long'); + -console.log(message); diff --git a/exercises/F-strings-methods/exercise2.js b/exercises/F-strings-methods/exercise2.js index b4b46943d..679ab8b04 100644 --- a/exercises/F-strings-methods/exercise2.js +++ b/exercises/F-strings-methods/exercise2.js @@ -1,3 +1,4 @@ -const name = " Daniel "; +const name = " Liew "; +let nameLength = name.length; -console.log(message); +console.log('My name is ' + name.trim() + ' and my name is ' + nameLength + ' characters long'); diff --git a/exercises/G-numbers/exercise.js b/exercises/G-numbers/exercise.js index 49e7bc00b..a8e6b3dc2 100644 --- a/exercises/G-numbers/exercise.js +++ b/exercises/G-numbers/exercise.js @@ -1 +1,9 @@ // Start by creating a variables `numberOfStudents` and `numberOfMentors` +let numberOfStudents = 40; +let numberOfMentors = 10; + +let sum = numberOfStudents + numberOfMentors; + +console.log('Number of students: ' + numberOfStudents); +console.log('Number of mentors: ' + numberOfMentors); +console.log('Total number of students and mentors ' + sum); diff --git a/exercises/I-floats/exercise.js b/exercises/I-floats/exercise.js index a5bbcd852..21de86352 100644 --- a/exercises/I-floats/exercise.js +++ b/exercises/I-floats/exercise.js @@ -1,2 +1,9 @@ var numberOfStudents = 15; var numberOfMentors = 8; + +let sum = numberOfStudents + numberOfMentors; +let percentageOfStudents = numberOfStudents / sum * 100; +let percentageOfMentors = numberOfMentors / sum * 100; + +console.log('Percentage students: ' + Math.round(percentageOfStudents) + '%'); +console.log('Percentage mentors: ' + Math.round(percentageOfMentors) + '%'); \ No newline at end of file diff --git a/exercises/J-functions/exercise.js b/exercises/J-functions/exercise.js index 0ae5850e5..cd3689c61 100644 --- a/exercises/J-functions/exercise.js +++ b/exercises/J-functions/exercise.js @@ -1,7 +1,17 @@ function halve(number) { // complete the function here + return number / 2; } var result = halve(12); +let a = halve(15); +let b = halve(202); +let c = halve(99.5); +let d = halve(15.6); console.log(result); +console.log(a); +console.log(b); +console.log(c); +console.log(d); +console.log(Math.round(d)); diff --git a/exercises/J-functions/exercise2.js b/exercises/J-functions/exercise2.js index 82ef5e780..d29e195d9 100644 --- a/exercises/J-functions/exercise2.js +++ b/exercises/J-functions/exercise2.js @@ -1,5 +1,6 @@ function triple(number) { // complete function here + return number * 3 } var result = triple(12); diff --git a/exercises/K-functions-parameters/exercise.js b/exercises/K-functions-parameters/exercise.js index 8d5db5e69..dbd50454d 100644 --- a/exercises/K-functions-parameters/exercise.js +++ b/exercises/K-functions-parameters/exercise.js @@ -1,6 +1,7 @@ // 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` diff --git a/exercises/K-functions-parameters/exercise2.js b/exercises/K-functions-parameters/exercise2.js index db7a8904b..937d62c46 100644 --- a/exercises/K-functions-parameters/exercise2.js +++ b/exercises/K-functions-parameters/exercise2.js @@ -1,4 +1,7 @@ // Declare your function first +function divide (a, b){ + return a / b; +} var result = divide(3, 4); diff --git a/exercises/K-functions-parameters/exercise3.js b/exercises/K-functions-parameters/exercise3.js index 537e9f4ec..aa39259a2 100644 --- a/exercises/K-functions-parameters/exercise3.js +++ b/exercises/K-functions-parameters/exercise3.js @@ -1,4 +1,8 @@ // Write your function here +function createGreeting (name){ + return 'Hello, my name is ' + name; +} + var greeting = createGreeting("Daniel"); diff --git a/exercises/K-functions-parameters/exercise4.js b/exercises/K-functions-parameters/exercise4.js index 7ab44589e..8ef1c3bae 100644 --- a/exercises/K-functions-parameters/exercise4.js +++ b/exercises/K-functions-parameters/exercise4.js @@ -1,5 +1,10 @@ // Declare your function first +function addison (a, b){ + return a + b; +}; // Call the function and assign to a variable `sum` +let sum = addison(13, 124); + console.log(sum); diff --git a/exercises/K-functions-parameters/exercise5.js b/exercises/K-functions-parameters/exercise5.js index 7c5bcd605..e6d6c20ed 100644 --- a/exercises/K-functions-parameters/exercise5.js +++ b/exercises/K-functions-parameters/exercise5.js @@ -1,4 +1,8 @@ // 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..ef1228159 100644 --- a/exercises/L-functions-nested/exercise.js +++ b/exercises/L-functions-nested/exercise.js @@ -1,5 +1,57 @@ +// ***** test out the example +// function getAgeInDays(age) { +// return age * 365; +// } + +// function createCreeting(name, age) { +// var ageInDays = getAgeInDays(age); +// var message = +// "My Name is " + name + " and I was born over " + ageInDays + " days ago!"; +// return message; +// } + +// let test = createCreeting('Liew', 999); + +// console.log(test); + +// Exercise 1 +console.log('Exercise 1:' + '\n'); +function calPercentage (num1, num2){ + return Math.floor(num1/(num1 + num2) * 100); +} + +function greeting (category, percentage){ + return 'Percentage ' + category + ': ' + percentage + '%'; +} + +let students = 15; +let mentors = 8; +let percentageOfStudents = calPercentage (students, mentors); +let percentageOfMentors = calPercentage (mentors, students); + +console.log (greeting('students', percentageOfStudents)); +console.log (greeting('mentors', percentageOfMentors)); + +// Exercise 2 +console.log('\n************************' + '\n' + 'Exercise 2:' + '\n'); + var mentor1 = "Daniel"; var mentor2 = "Irina"; var mentor3 = "Mimi"; var mentor4 = "Rob"; var mentor5 = "Yohannes"; + +function changeToUpperCase (name){ + return name.toUpperCase(); +} + +function greetingShout (mentor){ + return 'HELLO ' + changeToUpperCase(mentor); +} + +console.log(greetingShout(mentor1)); +console.log(greetingShout(mentor2)); +console.log(greetingShout(mentor3)); +console.log(greetingShout(mentor4)); +console.log(greetingShout(mentor5)); + diff --git a/extra/1-currency-conversion.js b/extra/1-currency-conversion.js index 70a2fe863..aac064e64 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(usDollar) { + return usDollar * 1.4; +} /* CURRENCY FORMATTING @@ -15,7 +17,9 @@ 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(brazilianReal) { + return brazilianReal * 5.7 * 0.99; +} /* ======= 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..632b9bb7d 100644 --- a/extra/2-piping.js +++ b/extra/2-piping.js @@ -16,26 +16,28 @@ 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)); /* BETTER PRACTICE */ -let goodCode = +let addition = add(startingValue, 10); +let multiplication = multiply (addition, 2); +let goodCode = format(multiplication); /* ======= 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/mandatory/1-syntax-errors.js b/mandatory/1-syntax-errors.js index 0a21afd1b..46cf52eec 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 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..7535e8ec1 100644 --- a/mandatory/3-function-output.js +++ b/mandatory/3-function-output.js @@ -1,9 +1,15 @@ // Add comments to explain what this function does. You're meant to use Google! +// below is a function which return a random number between >= 0 and < 10, due to the multiplication of 10. +// Math.random is a function returns a floating-point, pseudo-random number in the range 0 to less than 1 (inclusive of 0, but not 1) +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random function getNumber() { return Math.random() * 10; } + // Add comments to explain what this function does. You're meant to use Google! +//concat() is used to merge two or more arrays. This method does not change the existing arrays, but instead returns a new array. +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/concat function s(w1, w2) { return w1.concat(w2); } @@ -11,6 +17,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..a1b3a01ee 100644 --- a/mandatory/4-tax.js +++ b/mandatory/4-tax.js @@ -5,7 +5,9 @@ Sales tax is 20% of the price of the product */ -function calculateSalesTax() {} +function calculateSalesTax(price) { + return price * 1.2; +} /* CURRENCY FORMATTING @@ -17,7 +19,9 @@ function calculateSalesTax() {} Remember that the prices must include the sales tax (hint: you already wrote a function for this!) */ -function addTaxAndFormatCurrency() {} +function addTaxAndFormatCurrency(price) { + return '£' + calculateSalesTax(price).toFixed(2); +} /* ===================================================