diff --git a/extra/1-currency-conversion.js b/extra/1-currency-conversion.js index 75b3c6aab..a8a2be91a 100644 --- a/extra/1-currency-conversion.js +++ b/extra/1-currency-conversion.js @@ -5,7 +5,10 @@ Write a function that converts a price to USD (exchange rate is 1.4 $ to £) */ -function convertToUSD() {} +function convertToUSD(Pound) { + return Pound * 1.4; + +} /* CURRENCY CONVERSION @@ -15,7 +18,11 @@ 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(Pound) { + const priceAfterFee = 0.99; + const BRL = priceAfterFee * Pound * 5.7; + return Number(BRL.toFixed(2)); +} /* ======= 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 b4f8c4c1b..2afee6a42 100644 --- a/extra/2-piping.js +++ b/extra/2-piping.js @@ -16,30 +16,32 @@ the final result to the variable goodCode */ -function add() { - +function add(a, b) { +return a + b; } -function multiply() { - +function multiply( a, b) { +return a * b; } -function format() { +function format(number) { + return `£${number}`; } const startingValue = 2; // Why can this code be seen as bad practice? Comment your answer. -let badCode = +//It can be seen as a bad code beacuse everything is in one line which makes it hard to read and understand. +const badCode = format((startingValue + 10)*2); /* BETTER PRACTICE */ -let goodCode = - -/* ======= TESTS - DO NOT MODIFY ===== -There are some Tests in this file that will help you work out if your code is working. +let addition = add(startingValue, 10); +let multipication = multiply(addition, 2); +let goodCode = format(multipication); +/* To run the tests for just this one file, type `npm test -- --testPathPattern 2-piping` into your terminal (Reminder: You must have run `npm install` one time before this will work!) */ diff --git a/extra/3-magic-8-ball.js b/extra/3-magic-8-ball.js index 46f65f928..7fc3a7aa4 100644 --- a/extra/3-magic-8-ball.js +++ b/extra/3-magic-8-ball.js @@ -1,7 +1,7 @@ /** Let's peer into the future using a Magic 8 Ball! - https://en.wikipedia.org/wiki/Magic_8-Ball + i/Magic_8-https://en.wikipedia.org/wikBall There are a few steps to being able view the future though: * Ask a question @@ -13,40 +13,53 @@ and have different levels of positivity or negativity. Below are the possible answers: - - ## 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. - Most likely. - Outlook good. - Yes. - Signs point to yes. - - ## Negative - Reply hazy, try again. - Ask again later. - Better not tell you now. - Cannot predict now. - Concentrate and ask again. - - ## Very negative - Don't count on it. - My reply is no. - My sources say no. - Outlook not so good. - Very doubtful. -*/ + */ + + let veryPositiveAnswers = [ + "It is certain.", + "It is decidedly so.", + "Without a doubt.", + "Yes - definitely.", + "You may rely on it.", +]; + +let positiveAnswers= [ + "As I see it, yes.", + "Most likely.", + "Outlook good.", + "Yes.", + "Signs point to yes.", +]; + + let negativeAnswers = [ + "Reply hazy, try again.", + "Ask again later.", + "Better not tell you now.", + "Cannot predict now.", + "Concentrate and ask again.", +]; + + let veryNegativeAnswers = [ + "Don't count on it.", + "My reply is no.", + "My sources say no.", + "Outlook not so good.", + "Very doubtful.", +]; + +let allAnswers = [ + ...veryPositiveAnswers, + ...positiveAnswers, + ...negativeAnswers, + ...veryNegativeAnswers, +]; // This should log "The ball has shaken!" // and return the answer. function shakeBall() { - //Write your code in here + console.log("The ball has shaken!"); + let randomIndex = Math.floor(Math.random() * allAnswers.length); + return allAnswers[randomIndex]; } /* @@ -59,7 +72,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 + if (veryPositiveAnswers.includes(answer)) { + return "very positive"; + } else if (positiveAnswers.includes(answer)) { + return "positive"; + } else if (negativeAnswers.includes(answer)) { + return "negative"; + } else if (veryNegativeAnswers.includes(answer)) { + return "very negative"; + } + } /* diff --git a/mandatory/1-syntax-errors.js b/mandatory/1-syntax-errors.js index d9e004465..294f4d671 100644 --- a/mandatory/1-syntax-errors.js +++ b/mandatory/1-syntax-errors.js @@ -1,18 +1,19 @@ // 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 "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"; -} + +} /* =================================================== ======= TESTS - DO NOT MODIFY BELOW THIS LINE ===== diff --git a/mandatory/2-logic-error.js b/mandatory/2-logic-error.js index 9eb8c8cd7..ff5b064e1 100644 --- a/mandatory/2-logic-error.js +++ b/mandatory/2-logic-error.js @@ -1,16 +1,15 @@ // The syntax for these functions is valid but there are some errors, find them and fix them 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; } /* diff --git a/mandatory/3-function-output.js b/mandatory/3-function-output.js index 5a953ba60..29fa0887a 100644 --- a/mandatory/3-function-output.js +++ b/mandatory/3-function-output.js @@ -2,15 +2,17 @@ function getRandomNumber() { return Math.random() * 10; } +//it returns a number between 0 and 1, excluding 1.so multiplying with it 10,returns number between 0 and 10 but not 10. // Add comments to explain what this function does. You're meant to use Google! function combine2Words(word1, word2) { return word1.concat(word2); } - +//function combine2words concatinates two strings. 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 ba77c7ae2..5103e0cb7 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(sales) { + const tax = 0.2 * sales; + return tax + sales; +} /* 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(sales) { + return "£" + calculateSalesTax(sales) .toFixed(2); +} /* ===================================================