diff --git a/exercises/B-hello-world/exercise.js b/exercises/B-hello-world/exercise.js index b179ee953..f746b5ab9 100644 --- a/exercises/B-hello-world/exercise.js +++ b/exercises/B-hello-world/exercise.js @@ -1 +1 @@ -console.log("Hello world"); +console.log("Hello world I just started learning JavaScript!'."); diff --git a/exercises/C-variables/exercise.js b/exercises/C-variables/exercise.js index a6bbb9786..f5fe5b5ae 100644 --- a/exercises/C-variables/exercise.js +++ b/exercises/C-variables/exercise.js @@ -1,3 +1,3 @@ // Start by creating a variable `greeting` - +const greeting = "Hello world I just started learning JavaScript!"; console.log(greeting); diff --git a/exercises/D-strings/exercise.js b/exercises/D-strings/exercise.js index 2cffa6a81..77ef04b5d 100644 --- a/exercises/D-strings/exercise.js +++ b/exercises/D-strings/exercise.js @@ -1,3 +1,6 @@ // Start by creating a variable `message` +const message = "Hello world I just started learning JavaScript!"; +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..fa9e8044a 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 intro = "Hello, my name is"; +const name = "Chizim"; -console.log(message); +console.log(`${intro} ${name} and I like to code`); diff --git a/exercises/F-strings-methods/exercise.js b/exercises/F-strings-methods/exercise.js index 2cffa6a81..6dd93c668 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` -console.log(message); +const name = "Chizim"; +const nameLength = name.length; + +console.log(`My name is ${name} and my name is ${nameLength} characters long`); diff --git a/exercises/F-strings-methods/exercise2.js b/exercises/F-strings-methods/exercise2.js index b4b46943d..3a4ba159d 100644 --- a/exercises/F-strings-methods/exercise2.js +++ b/exercises/F-strings-methods/exercise2.js @@ -1,3 +1,6 @@ const name = " Daniel "; +const trimmedName = name.trim(); +const newNameLength = trimmedName.length; + +console.log(`My name is ${trimmedName} and my name is ${newNameLength} characters long`); -console.log(message); diff --git a/exercises/G-numbers/exercise.js b/exercises/G-numbers/exercise.js index 49e7bc00b..54b89dbba 100644 --- a/exercises/G-numbers/exercise.js +++ b/exercises/G-numbers/exercise.js @@ -1 +1,10 @@ // Start by creating a variables `numberOfStudents` and `numberOfMentors` + +const numberOfStudents = 15; +const numberOfMentors = 3; + +const total = numberOfStudents + numberOfMentors; + +console.log(`Number of students: ${numberOfStudents}`); +console.log(`Number of mentors: ${numberOfMentors}`); +console.log(`Total numnber of students and mentors: ${total}`); diff --git a/exercises/I-floats/exercise.js b/exercises/I-floats/exercise.js index a5bbcd852..6b3b0c56b 100644 --- a/exercises/I-floats/exercise.js +++ b/exercises/I-floats/exercise.js @@ -1,2 +1,16 @@ var numberOfStudents = 15; var numberOfMentors = 8; + +var total = numberOfStudents + numberOfMentors; + +// get percentage of students and mentors +var convertStudents = numberOfStudents / total * 100; +var convertMentors = numberOfMentors / total * 100; + +// round the figues to a whole number +var percentageOfStudents = Math.round(convertStudents); +var percentageOfMentors = Math.round(convertMentors); + +console.log(`Percentage students: ${percentageOfStudents}%`); +console.log(`Percentage students: ${percentageOfMentors}%`); + diff --git a/exercises/J-functions/exercise.js b/exercises/J-functions/exercise.js index 0ae5850e5..54e17a6f5 100644 --- a/exercises/J-functions/exercise.js +++ b/exercises/J-functions/exercise.js @@ -1,7 +1,11 @@ function halve(number) { - // complete the function here + return number / 2;// complete the function here } var result = halve(12); +var result1 = halve(10); +var result2 = halve(9); console.log(result); +console.log(result1); +console.log(result2); diff --git a/exercises/J-functions/exercise2.js b/exercises/J-functions/exercise2.js index 82ef5e780..3ab6ad721 100644 --- a/exercises/J-functions/exercise2.js +++ b/exercises/J-functions/exercise2.js @@ -1,5 +1,5 @@ function triple(number) { - // complete function here + return number * 3// complete function here } var result = triple(12); diff --git a/exercises/K-functions-parameters/exercise.js b/exercises/K-functions-parameters/exercise.js index 8d5db5e69..676cf35aa 100644 --- a/exercises/K-functions-parameters/exercise.js +++ b/exercises/K-functions-parameters/exercise.js @@ -1,6 +1,6 @@ // Complete the function so that it takes input parameters -function multiply() { - // Calculate the result of the function and return it +function multiply(num1, num2) { + return num1 * num2; // Calculate the result of the function and return it } // 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..378612fcd 100644 --- a/exercises/K-functions-parameters/exercise2.js +++ b/exercises/K-functions-parameters/exercise2.js @@ -1,4 +1,6 @@ -// Declare your function first +function divide (num1, num2) { + return num1 / num2; +} // Declare your function first var result = divide(3, 4); diff --git a/exercises/K-functions-parameters/exercise3.js b/exercises/K-functions-parameters/exercise3.js index 537e9f4ec..1584285e9 100644 --- a/exercises/K-functions-parameters/exercise3.js +++ b/exercises/K-functions-parameters/exercise3.js @@ -1,4 +1,6 @@ -// 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..d6846fce1 100644 --- a/exercises/K-functions-parameters/exercise4.js +++ b/exercises/K-functions-parameters/exercise4.js @@ -1,5 +1,10 @@ // 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..06445daa2 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..c2fdaf4c0 100644 --- a/exercises/L-functions-nested/exercise.js +++ b/exercises/L-functions-nested/exercise.js @@ -1,5 +1,39 @@ +function groupPercentage(num1, num2){ + let totalInGroup = num1 + num2; + return calculatePercentage = Math.round((num1 / totalInGroup) * 100); +} + +function message(numberOfStudents, numberOfMentors){ + let percentageOfStudents = groupPercentage(numberOfStudents, numberOfMentors); + let percentageOfMentors = groupPercentage (numberOfMentors, numberOfStudents); + return `Percentage students: ${percentageOfStudents}%\nPercentage students: ${percentageOfMentors}%`; +} + let percentage = message(15, 8); + console.log(percentage); + + +// Exercise 2 + var mentor1 = "Daniel"; var mentor2 = "Irina"; var mentor3 = "Mimi"; var mentor4 = "Rob"; var mentor5 = "Yohannes"; + +function shoutyGreeting(mentor){ + let blockNames = mentor.toUpperCase(); + return greeting = `HELLO ${blockNames}`; + +} + +var firstGreeting = shoutyGreeting(mentor1); +var secondGreeting = shoutyGreeting(mentor2); +var thirdGreeting = shoutyGreeting(mentor3); +var fourthGreeting = shoutyGreeting(mentor4); +var fifthGreeting = shoutyGreeting(mentor5); + +console.log(firstGreeting); +console.log(secondGreeting); +console.log(thirdGreeting); +console.log(fourthGreeting); +console.log(fifthGreeting); \ No newline at end of file diff --git a/extra/1-currency-conversion.js b/extra/1-currency-conversion.js index 70a2fe863..1f803dd44 100644 --- a/extra/1-currency-conversion.js +++ b/extra/1-currency-conversion.js @@ -5,7 +5,11 @@ Write a function that converts a price to USD (exchange rate is 1.4 $ to £) */ -function convertToUSD() {} +function convertToUSD(amountInPounds) { + return amountInPounds * 1.4; +} +let value = convertToUSD(32); +console.log(`Amount is $${value}`); /* CURRENCY FORMATTING @@ -15,7 +19,12 @@ 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(moneyInPounds) { + let percentFee = moneyInPounds - (0.01 * moneyInPounds); + return Math.round((percentFee * 5.7)*100)/100; +} +let newValue = convertToBRL(30); +console.log(`Amount is ${newValue} Brazilian real`); /* ======= 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..3e40421b9 100644 --- a/extra/2-piping.js +++ b/extra/2-piping.js @@ -16,26 +16,34 @@ the final result to the variable goodCode */ -function add() { - +function add(num1, num2) { + return num1 + num2; } -function multiply() { +console.log(add(3, 5)); +function multiply(num1, num2) { + return num1*num2; } -function format() { +console.log(multiply(3, 5)); +function format(pound) { + return `£${pound}`; } +console.log(format(20)); + 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)); //Very badCode as all codes are mumbled up in one line /* BETTER PRACTICE */ -let goodCode = +let sum = add(startingValue, 10); +let product = multiply(sum, 2); +let goodCode = format(product); /* ======= 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 e32182cfe..22be749d1 100644 --- a/extra/3-magic-8-ball.js +++ b/extra/3-magic-8-ball.js @@ -43,10 +43,95 @@ Very doubtful. */ +let answers = [ + { + posisibility: "It is certain.", + type: "very positive" + }, + { + posisibility: "It is decidedly so.", + type: "very positive" + }, + { + posisibility: "Without a doubt.", + type: "very positive" + }, + { + posisibility: "Yes - definitely.", + type: "very positive" + }, + { + posisibility: "You may rely on it.", + type: "very positive" + }, + { + posisibility: "As I see it, yes.", + type: "positive" + }, + { + posisibility: "Most likely.", + type: "positive" + }, + { + posisibility: "Outlook good.", + type: "positive" + }, + { + posisibility: "Yes.", + type: "positive" + }, + { + posisibility: "Signs point to yes.", + type: "positive" + }, + { + posisibility: "Reply hazy, try again.", + type: "negative" + }, + { + posisibility: "Ask again later.", + type: "negative" + }, + { + posisibility: "Better not tell you now.", + type: "negative" + }, + { + posisibility: "Cannot predict now.", + type: "negative" + }, + { + posisibility: "Concentrate and ask again.", + type: "negative" + }, + { + posisibility: "Don't count on it.", + type: "very negative" + }, + { + posisibility: "My reply is no.", + type: "very negative" + }, + { + posisibility: "My sources say no.", + type: "very negative" + }, + { + posisibility: "Outlook not so good.", + type: "very negative" + }, + { + posisibility: "Very doubtful.", + type: "very negative" + } +] + // This should log "The ball has shaken!" // and return the answer. function shakeBall() { - //Write your code in here + let randomAnswer = Math.floor(Math.random() * 20); + console.log("The ball has shaken!") + return answers[randomAnswer].posisibility; } /* @@ -59,7 +144,10 @@ 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 result = answers.filter(object => { + return object.posisibility === answer + }); + return result[0].type; } /* diff --git a/mandatory/1-syntax-errors.js b/mandatory/1-syntax-errors.js index 0a21afd1b..ffdc989eb 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) { +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}` } /* 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..28c4bb067 100644 --- a/mandatory/3-function-output.js +++ b/mandatory/3-function-output.js @@ -1,14 +1,15 @@ // Add comments to explain what this function does. You're meant to use Google! function getNumber() { - return Math.random() * 10; + return Math.random() * 10; //returns random number between 0 to 10 but not 10 } // Add comments to explain what this function does. You're meant to use Google! function s(w1, w2) { - return w1.concat(w2); + return w1.concat(w2); // joins w1 and w2 together } function concatenate(firstWord, secondWord, thirdWord) { + return `${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. } diff --git a/mandatory/4-tax.js b/mandatory/4-tax.js index c9e41c691..9bd39434f 100644 --- a/mandatory/4-tax.js +++ b/mandatory/4-tax.js @@ -5,7 +5,12 @@ Sales tax is 20% of the price of the product */ -function calculateSalesTax() {} +// pruductPrize is the prize before tax + +function calculateSalesTax(productPrize) { + let salesTaxPercentage = 0.2; + return productPrize + productPrize * salesTaxPercentage; // returns sales prize after tax +} /* CURRENCY FORMATTING @@ -17,7 +22,10 @@ function calculateSalesTax() {} Remember that the prices must include the sales tax (hint: you already wrote a function for this!) */ -function addTaxAndFormatCurrency() {} +function addTaxAndFormatCurrency(productPrize) { + let newValue = `£${calculateSalesTax(productPrize).toFixed(2)}`; + return newValue; +} /* =================================================== diff --git a/mandatory/package-lock.json b/mandatory/package-lock.json new file mode 100644 index 000000000..48e341a09 --- /dev/null +++ b/mandatory/package-lock.json @@ -0,0 +1,3 @@ +{ + "lockfileVersion": 1 +}