diff --git a/exercises/B-hello-world/exercise.js b/exercises/B-hello-world/exercise.js index b179ee953..2a7b53565 100644 --- a/exercises/B-hello-world/exercise.js +++ b/exercises/B-hello-world/exercise.js @@ -1 +1,2 @@ -console.log("Hello world"); +console.log("Hello World. I just started learning JavaScript!"); +console.log(123); \ No newline at end of file diff --git a/exercises/C-variables/exercise.js b/exercises/C-variables/exercise.js index a6bbb9786..6a1175bba 100644 --- a/exercises/C-variables/exercise.js +++ b/exercises/C-variables/exercise.js @@ -1,3 +1,5 @@ // Start by creating a variable `greeting` - +var greeting = "Hello world"; console.log(greeting); +console.log(greeting); +console.log(greeting); \ No newline at end of file diff --git a/exercises/D-strings/exercise.js b/exercises/D-strings/exercise.js index 2cffa6a81..d2fa02cc3 100644 --- a/exercises/D-strings/exercise.js +++ b/exercises/D-strings/exercise.js @@ -1,3 +1,5 @@ // Start by creating a variable `message` +var message = "This is a string"; console.log(message); +console.log(typeof message); \ No newline at end of file diff --git a/exercises/E-strings-concatenation/exercise.js b/exercises/E-strings-concatenation/exercise.js index 2cffa6a81..1feb30046 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` +var greetingStart = "Hello, my name is "; +var name = "Hassan"; -console.log(message); +var greeting = greetingStart + name; +console.log(greeting); \ No newline at end of file diff --git a/exercises/F-strings-methods/exercise.js b/exercises/F-strings-methods/exercise.js index 2cffa6a81..5f3e3ab25 100644 --- a/exercises/F-strings-methods/exercise.js +++ b/exercises/F-strings-methods/exercise.js @@ -1,3 +1,3 @@ // Start by creating a variable `message` - -console.log(message); +let message = "My name is Hassan and my name is "; +console.log(message + message.length + " characters long"); \ No newline at end of file diff --git a/exercises/F-strings-methods/exercise2.js b/exercises/F-strings-methods/exercise2.js index b4b46943d..7e11736ce 100644 --- a/exercises/F-strings-methods/exercise2.js +++ b/exercises/F-strings-methods/exercise2.js @@ -1,3 +1,3 @@ const name = " Daniel "; -console.log(message); +console.log(name.trim()); \ No newline at end of file diff --git a/exercises/G-numbers/exercise.js b/exercises/G-numbers/exercise.js index 49e7bc00b..7023eae07 100644 --- a/exercises/G-numbers/exercise.js +++ b/exercises/G-numbers/exercise.js @@ -1 +1,4 @@ // Start by creating a variables `numberOfStudents` and `numberOfMentors` +let numberOfStudents = 5; +let numberOfMentors = 1; +console.log(numberOfStudents + numberOfMentors); \ No newline at end of file diff --git a/exercises/I-floats/exercise.js b/exercises/I-floats/exercise.js index a5bbcd852..5e38b1b22 100644 --- a/exercises/I-floats/exercise.js +++ b/exercises/I-floats/exercise.js @@ -1,2 +1,9 @@ -var numberOfStudents = 15; -var numberOfMentors = 8; +let numberOfStudents = 15; +let numberOfMentors = 8; +let total = numberOfStudents + numberOfMentors; + +let pStudens = Math.round(numberOfStudents * 100 / total); +let pMentor = Math.round(numberOfMentors * 100 / total); + +console.log("Percentage students: " + pStudens + "%"); +console.log("Percentage mentors: " + pMentor + "%"); \ No newline at end of file diff --git a/exercises/J-functions/exercise.js b/exercises/J-functions/exercise.js index 0ae5850e5..d367b349f 100644 --- a/exercises/J-functions/exercise.js +++ b/exercises/J-functions/exercise.js @@ -1,7 +1,9 @@ function halve(number) { - // complete the function here + return number / 2; } var result = halve(12); +var result2 = halve(120); console.log(result); +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..ba12fd1e4 100644 --- a/exercises/J-functions/exercise2.js +++ b/exercises/J-functions/exercise2.js @@ -1,7 +1,7 @@ function triple(number) { - // complete function here + return number * 3; } var result = triple(12); -console.log(result); +console.log(result); \ No newline at end of file diff --git a/exercises/K-functions-parameters/exercise.js b/exercises/K-functions-parameters/exercise.js index 8d5db5e69..440d507d3 100644 --- a/exercises/K-functions-parameters/exercise.js +++ b/exercises/K-functions-parameters/exercise.js @@ -1,9 +1,9 @@ // Complete the function so that it takes input parameters -function multiply() { - // Calculate the result of the function and return it +function multiply(x, y) { + return x * y; } // Assign the result of calling the function the variable `result` var result = multiply(3, 4); -console.log(result); +console.log(result); \ No newline at end of file diff --git a/exercises/K-functions-parameters/exercise2.js b/exercises/K-functions-parameters/exercise2.js index db7a8904b..6d980c574 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(x, y) { + return x / y; +} var result = divide(3, 4); -console.log(result); +console.log(result); \ No newline at end of file diff --git a/exercises/K-functions-parameters/exercise3.js b/exercises/K-functions-parameters/exercise3.js index 537e9f4ec..6f53c724a 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"); -console.log(greeting); +console.log(greeting); \ No newline at end of file diff --git a/exercises/K-functions-parameters/exercise4.js b/exercises/K-functions-parameters/exercise4.js index 7ab44589e..9696da0af 100644 --- a/exercises/K-functions-parameters/exercise4.js +++ b/exercises/K-functions-parameters/exercise4.js @@ -1,5 +1,7 @@ -// Declare your function first +function add(x, y) { + return x + y; +} -// Call the function and assign to a variable `sum` +var sum = add(13, 124); -console.log(sum); +console.log(sum); \ No newline at end of file diff --git a/exercises/K-functions-parameters/exercise5.js b/exercises/K-functions-parameters/exercise5.js index 7c5bcd605..7d7dc70a5 100644 --- a/exercises/K-functions-parameters/exercise5.js +++ b/exercises/K-functions-parameters/exercise5.js @@ -1,5 +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); -console.log(greeting); + +console.log(greeting); \ No newline at end of file diff --git a/exercises/L-functions-nested/exercise.js b/exercises/L-functions-nested/exercise.js index a5d377442..fa4d08ef3 100644 --- a/exercises/L-functions-nested/exercise.js +++ b/exercises/L-functions-nested/exercise.js @@ -3,3 +3,17 @@ var mentor2 = "Irina"; var mentor3 = "Mimi"; var mentor4 = "Rob"; var mentor5 = "Yohannes"; + +function upperCase(name) { + return name.toUpperCase(); +} + +function greeting(name) { + return upperCase("Hello") + " " + upperCase(name); +} + +console.log(greeting(mentor1)); +console.log(greeting(mentor2)); +console.log(greeting(mentor3)); +console.log(greeting(mentor4)); +console.log(greeting(mentor5)); \ No newline at end of file diff --git a/mandatory/1-syntax-errors.js b/mandatory/1-syntax-errors.js index a10cc9ac2..0e1e381bd 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; } /* @@ -26,15 +27,15 @@ To run the tests for just this one file, type `npm test -- --testPathPattern 1-s */ test("addNumbers adds numbers correctly", () => { - expect(addNumbers(3, 4, 6)).toEqual(13); + expect(addNumbers(3, 4, 6)).toEqual(13); }); test("introduceMe function returns the correct string", () => { - expect(introduceMe("Sonjide", 27)).toEqual( - "Hello, my name is Sonjide and I am 27 years old" - ); + expect(introduceMe("Sonjide", 27)).toEqual( + "Hello, my name is Sonjide and I am 27 years old" + ); }); test("getTotal returns a string describing the total", () => { - expect(getTotal(23, 5)).toEqual("The total is 28"); -}); + expect(getTotal(23, 5)).toEqual("The total is 28"); +}); \ No newline at end of file diff --git a/mandatory/2-logic-error.js b/mandatory/2-logic-error.js index 9cca7603b..a9632a6ff 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; } /* @@ -25,27 +24,27 @@ To run the tests for just this one file, type `npm test -- --testPathPattern 2-l */ test("trimWord trims leading and trailing whitespace", () => { - expect(trimWord(" CodeYourFuture ")).toEqual("CodeYourFuture"); + expect(trimWord(" CodeYourFuture ")).toEqual("CodeYourFuture"); }); test("trimWord doesn't remove whitespace in the middle of the string", () => { - expect(trimWord(" CodeYourFuture teaches coding ")).toEqual( - "CodeYourFuture teaches coding" - ); + expect(trimWord(" CodeYourFuture teaches coding ")).toEqual( + "CodeYourFuture teaches coding" + ); }); test("getStringLength returns the length of a word", () => { - expect(getStringLength("Turtles")).toEqual(7); + expect(getStringLength("Turtles")).toEqual(7); }); test("getStringLength returns the length of a sentence", () => { - expect(getStringLength("A wild sentence appeared!")).toEqual(25); + expect(getStringLength("A wild sentence appeared!")).toEqual(25); }); test("multiply multiplies numbers", () => { - expect(multiply(2, 3, 6)).toEqual(36); + expect(multiply(2, 3, 6)).toEqual(36); }); test("multiply multiplies different numbers", () => { - expect(multiply(2, 3, 4)).toEqual(24); -}); + expect(multiply(2, 3, 4)).toEqual(24); +}); \ No newline at end of file diff --git a/mandatory/3-function-output.js b/mandatory/3-function-output.js index 5a953ba60..1f32f8ce9 100644 --- a/mandatory/3-function-output.js +++ b/mandatory/3-function-output.js @@ -1,16 +1,19 @@ // Add comments to explain what this function does. You're meant to use Google! function getRandomNumber() { - return Math.random() * 10; + return Math.random() * 10; // random floating-point number from 0 to 10 } // 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); // return 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. + // 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 + " ").concat(thirdWord)); + //another accepted approach + //return `${firstWord} ${secondWord} ${thirdWord}`; } /* @@ -25,13 +28,13 @@ To run the tests for just this one file, type `npm test -- --testPathPattern 3-f */ test("concatenate example #1", () => { - expect(concatenate("code", "your", "future")).toEqual("code your future"); + expect(concatenate("code", "your", "future")).toEqual("code your future"); }); test("concatenate example #2", () => { - expect(concatenate("I", "like", "pizza")).toEqual("I like pizza"); + expect(concatenate("I", "like", "pizza")).toEqual("I like pizza"); }); test("concatenate doesn't only accept strings", () => { - expect(concatenate("I", "am", 13)).toEqual("I am 13"); -}); + expect(concatenate("I", "am", 13)).toEqual("I am 13"); +}); \ No newline at end of file diff --git a/mandatory/4-tax.js b/mandatory/4-tax.js index ba77c7ae2..d32a99110 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(num) { + return num * 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(num) { + return "£" + calculateSalesTax(num).toFixed(2); +} /* =================================================== @@ -31,25 +35,25 @@ To run the tests for just this one file, type `npm test -- --testPathPattern 4-t */ test("calculateSalesTax for £15", () => { - expect(calculateSalesTax(15)).toEqual(18); + expect(calculateSalesTax(15)).toEqual(18); }); test("calculateSalesTax for £17.50", () => { - expect(calculateSalesTax(17.5)).toEqual(21); + expect(calculateSalesTax(17.5)).toEqual(21); }); test("calculateSalesTax for £34", () => { - expect(calculateSalesTax(34)).toEqual(40.8); + expect(calculateSalesTax(34)).toEqual(40.8); }); test("addTaxAndFormatCurrency for £15", () => { - expect(addTaxAndFormatCurrency(15)).toEqual("£18.00"); + expect(addTaxAndFormatCurrency(15)).toEqual("£18.00"); }); test("addTaxAndFormatCurrency for £17.50", () => { - expect(addTaxAndFormatCurrency(17.5)).toEqual("£21.00"); + expect(addTaxAndFormatCurrency(17.5)).toEqual("£21.00"); }); test("addTaxAndFormatCurrency for £34", () => { - expect(addTaxAndFormatCurrency(34)).toEqual("£40.80"); -}); + expect(addTaxAndFormatCurrency(34)).toEqual("£40.80"); +}); \ No newline at end of file