diff --git a/.vscode/jsconfig.json b/.vscode/jsconfig.json
new file mode 100644
index 000000000..e9441a490
--- /dev/null
+++ b/.vscode/jsconfig.json
@@ -0,0 +1,8 @@
+{
+ "compilerOptions": {
+ "target": "esnext",
+ "lib": [
+ "esnext"
+ ]
+ }
+}
\ No newline at end of file
diff --git a/.vscode/main.js b/.vscode/main.js
new file mode 100644
index 000000000..ec3bef502
--- /dev/null
+++ b/.vscode/main.js
@@ -0,0 +1,12 @@
+///
+///
+// @ts-check
+// API: https://code.visualstudio.com/api/references/vscode-api
+
+function activate(_context) {
+ window.showInformationMessage('Hello, World!');
+}
+
+function deactivate() {}
+
+module.exports = { activate, deactivate }
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 000000000..6c2ff60b6
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,5 @@
+{
+ "githubPullRequests.ignoredPullRequestBranches": [
+ "master"
+ ]
+}
\ No newline at end of file
diff --git a/exercises/B-hello-world/exercise.js b/exercises/B-hello-world/exercise.js
index b179ee953..a0472ee47 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 World. I just started learning JavaScript");
+console.log(33);
diff --git a/exercises/C-variables/exercise.js b/exercises/C-variables/exercise.js
index a6bbb9786..7beea3261 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);
diff --git a/exercises/D-strings/exercise.js b/exercises/D-strings/exercise.js
index 2cffa6a81..8eb3e774b 100644
--- a/exercises/D-strings/exercise.js
+++ b/exercises/D-strings/exercise.js
@@ -1,3 +1,9 @@
// Start by creating a variable `message`
+
+var message = "This is a string";
+var 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..dca8c2558 100644
--- a/exercises/E-strings-concatenation/exercise.js
+++ b/exercises/E-strings-concatenation/exercise.js
@@ -1,3 +1,8 @@
// Start by creating a variable `message`
-console.log(message);
+var greetingStart = "Hello, my name is ";
+var name = "Ekrem";
+
+var greeting = greetingStart + name;
+
+console.log(greeting);
diff --git a/exercises/F-strings-methods/exercise.js b/exercises/F-strings-methods/exercise.js
index 2cffa6a81..add3b6598 100644
--- a/exercises/F-strings-methods/exercise.js
+++ b/exercises/F-strings-methods/exercise.js
@@ -1,3 +1,9 @@
// Start by creating a variable `message`
+var name= "Ekrem";
+var length = name.length;
+
+var message= "My name is " + name + " and my name is " + length + " characters long";
+
+
console.log(message);
diff --git a/exercises/F-strings-methods/exercise2.js b/exercises/F-strings-methods/exercise2.js
index b4b46943d..b072678ec 100644
--- a/exercises/F-strings-methods/exercise2.js
+++ b/exercises/F-strings-methods/exercise2.js
@@ -1,3 +1,9 @@
const name = " Daniel ";
+var nameWithoutTrim = name.trim();
+
+var length = nameWithoutTrim.length;
+
+var message= "My name is " + nameWithoutTrim + " and my name is " + length + " characters long";
+
console.log(message);
diff --git a/exercises/G-numbers/exercise.js b/exercises/G-numbers/exercise.js
index 49e7bc00b..c5b752c49 100644
--- a/exercises/G-numbers/exercise.js
+++ b/exercises/G-numbers/exercise.js
@@ -1 +1,11 @@
// Start by creating a variables `numberOfStudents` and `numberOfMentors`
+function sumStudentsAndMentors (a,b){
+ return a+b;
+}
+var numberOfStudents = 15;
+console.log("Number of students: "+numberOfStudents);
+var numberOfMentors = 8;
+console.log("Number of mentors: "+numberOfMentors);
+var total = sumStudentsAndMentors(numberOfStudents, numberOfMentors);
+console.log("Total number of students and mentors: " + total); // with use function
+console.log("Total number of students and mentors: " + (numberOfMentors+numberOfStudents)); //just use basic sum
\ No newline at end of file
diff --git a/exercises/I-floats/exercise.js b/exercises/I-floats/exercise.js
index a5bbcd852..f8eaa0d37 100644
--- a/exercises/I-floats/exercise.js
+++ b/exercises/I-floats/exercise.js
@@ -1,2 +1,12 @@
var numberOfStudents = 15;
var numberOfMentors = 8;
+var total = numberOfMentors+numberOfStudents;
+
+var roundPercentageOfStudents = Math.round((numberOfStudents*100)/total);
+console.log("Percentage students: " + roundPercentageOfStudents+"%");
+
+var roundPercentageOfMentors = Math.round((numberOfMentors*100)/total);
+console.log("Percentage mentors: " + roundPercentageOfMentors+"%");
+
+
+
diff --git a/exercises/J-functions/exercise.js b/exercises/J-functions/exercise.js
index 0ae5850e5..1a2e36f37 100644
--- a/exercises/J-functions/exercise.js
+++ b/exercises/J-functions/exercise.js
@@ -1,4 +1,6 @@
function halve(number) {
+
+ return number / 2;
// complete the function here
}
diff --git a/exercises/J-functions/exercise2.js b/exercises/J-functions/exercise2.js
index 82ef5e780..468d45596 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..34310722b 100644
--- a/exercises/K-functions-parameters/exercise.js
+++ b/exercises/K-functions-parameters/exercise.js
@@ -1,5 +1,7 @@
// Complete the function so that it takes input parameters
-function multiply() {
+function multiply(a, b) {
+ return a * b;
+
// 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..ab4102430 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..3341b2910 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, 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..6afdab7bc 100644
--- a/exercises/K-functions-parameters/exercise4.js
+++ b/exercises/K-functions-parameters/exercise4.js
@@ -1,5 +1,9 @@
// Declare your function first
-
+function summation(num1, num2) {
+ return num1 + num2;
+}
// Call the function and assign to a variable `sum`
+var sum = summation(13, 124);
+
console.log(sum);
diff --git a/exercises/K-functions-parameters/exercise5.js b/exercises/K-functions-parameters/exercise5.js
index 7c5bcd605..8795f0fc4 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..0df8997e6 100644
--- a/exercises/L-functions-nested/exercise.js
+++ b/exercises/L-functions-nested/exercise.js
@@ -3,3 +3,15 @@ var mentor2 = "Irina";
var mentor3 = "Mimi";
var mentor4 = "Rob";
var mentor5 = "Yohannes";
+
+function changeToUppercase(name) {
+ return (upperCasename = name.toUpperCase());
+}
+function shoutyGreeting(upperCasename) {
+ return "HELLO " + upperCasename;
+}
+console.log(shoutyGreeting(changeToUppercase(mentor1)));
+console.log(shoutyGreeting(changeToUppercase(mentor2)));
+console.log(shoutyGreeting(changeToUppercase(mentor3)));
+console.log(shoutyGreeting(changeToUppercase(mentor4)));
+console.log(shoutyGreeting(changeToUppercase(mentor5)));
diff --git a/extra/1-currency-conversion.js b/extra/1-currency-conversion.js
index 75b3c6aab..c32d32190 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(Pound) {
+ return Pound * 1.4;
+}
/*
CURRENCY CONVERSION
@@ -14,8 +16,14 @@ function convertToUSD() {}
Write a new function for converting to the Brazilian real (exchange rate is 5.7 BRL to £)
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 fixDecimal(num, decimal) {
+ decimal = Math.pow(10, decimal);
+ return Math.round(num * decimal) / decimal;
+}
+
+function convertToBRL(Pound) {
+ return fixDecimal(Pound * 5.7 * 0.99, 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..da00ca88b 100644
--- a/extra/2-piping.js
+++ b/extra/2-piping.js
@@ -16,26 +16,26 @@
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(num1) {
+ return "£" + num1;
}
const startingValue = 2;
// Why can this code be seen as bad practice? Comment your answer.
-let badCode =
+let badCode = `${format(multiply(2, add(10, startingValue)))}`;
/* BETTER PRACTICE */
-let goodCode =
+let goodCode = format(multiply(2, add(10, startingValue)));
/* ======= 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 46f65f928..2bd142607 100644
--- a/extra/3-magic-8-ball.js
+++ b/extra/3-magic-8-ball.js
@@ -45,10 +45,37 @@
// This should log "The ball has shaken!"
// and return the answer.
-function shakeBall() {
- //Write your code in here
+//for (let i = 0; i < 21; ++i) {
+console.log("The ball has shaken!");
+function shakeBall(answers) {
+ const answer = answers.sort(() => Math.random() * 20).slice(0, 1);
+ //return answer;
+ console.log(answer);
}
+let answer = shakeBall([
+ "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.",
+]);
+
/*
This function should say whether the answer it is given is
- very positive
@@ -58,10 +85,37 @@ 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 (
+ answer === "[ 'It is certain.' ]" ||
+ answer === "It is decidedly so." ||
+ answer === "You may rely on it." ||
+ answer === "Without a doubt." ||
+ answer === "Yes - definitely."
+ ) {
+ return "very positive";
+ } else if (
+ answer === "Yes." ||
+ answer === "As I see it, yes." ||
+ answer === "Signs point to yes." ||
+ answer === "Most likely." ||
+ answer === "Outlook good."
+ ) {
+ return "positive";
+ } else if (
+ answer === "Reply hazy, try again." ||
+ answer === "Ask again later." ||
+ answer === "Better not tell you now." ||
+ answer === "Cannot predict now." ||
+ answer === "Concentrate and ask again."
+ ) {
+ return "negative";
+ } else {
+ return "very negative";
+ }
}
-
+//}
/*
==================================
======= TESTS - DO NOT MODIFY =====
@@ -101,7 +155,9 @@ test("magic 8 ball returns different values each time", () => {
);
}
- let seenPositivities = new Set(Array.from(seenAnswers.values()).map(checkAnswer));
+ let seenPositivities = new Set(
+ Array.from(seenAnswers.values()).map(checkAnswer)
+ );
if (seenPositivities.size < 2) {
throw Error(
"Expected to random answers with different positivities each time shakeBall was called, but always got the same one"
diff --git a/mandatory/1-syntax-errors.js b/mandatory/1-syntax-errors.js
index a10cc9ac2..730b464ac 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;
+ 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 9cca7603b..37c4ebc15 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;
}
/*
diff --git a/mandatory/3-function-output.js b/mandatory/3-function-output.js
index 5a953ba60..e1ff982ea 100644
--- a/mandatory/3-function-output.js
+++ b/mandatory/3-function-output.js
@@ -5,10 +5,11 @@ function getRandomNumber() {
// 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);
}
function concatenate(firstWord, secondWord, thirdWord) {
+ return firstWord.concat(" ", 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 ba77c7ae2..7ada32bd1 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(productPrice) {
+ let withTax = productPrice * 0.2 + productPrice;
+ return withTax;
+}
/*
CURRENCY FORMATTING
@@ -17,8 +20,10 @@ function calculateSalesTax() {}
Remember that the prices must include the sales tax (hint: you already wrote a function for this!)
*/
-function addTaxAndFormatCurrency() {}
-
+function addTaxAndFormatCurrency(productPrice) {
+ let withTaxWithFormat = productPrice * 0.2 + productPrice;
+ return "£" + withTaxWithFormat.toFixed(2);
+}
/*
===================================================
======= TESTS - DO NOT MODIFY BELOW THIS LINE =====