Skip to content
This repository was archived by the owner on Jan 14, 2024. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions exercises/B-hello-world/exercise.js
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
//noconsole.log("Hello world");

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi Shima, we don't usually leave commented out code in our pull requests.

You can read more about it here :) https://syllabus.codeyourfuture.io/guides/code-style-guide#dont-leave-lots-of-commented-out-code

console.log("Hello world");

2 changes: 2 additions & 0 deletions exercises/C-variables/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ We can use _variable_ to create a reference to a value.
```js
var greeting = "Hello world";

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The exercises use var a lot so it's understandable that you would also use var. We encourage you to use let or const instead and never var.

  • let - When a variable is assigned, its value can change
  • const - When a variable is assigned, its value will never change, it is a constant.

We also don't need the ```js lines because this is more for markdown and will cause errors with your actual code.

Finally we only need the console.log(greeting); one time otherwise you say Hello World three times 👍


console.log(greeting);
console.log(greeting);
console.log(greeting);
```

Expand Down
4 changes: 3 additions & 1 deletion exercises/C-variables/exercise.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
// Start by creating a variable `greeting`

var greeting = "Hello World";

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The same feedback here Shima :) We only need the console.log one time and you can switch var greeting to const greeting 👍

console.log(greeting);
console.log(greeting);
console.log(greeting);
3 changes: 2 additions & 1 deletion exercises/D-strings/exercise.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// Start by creating a variable `message`

let message = "This is a string";

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Brilliant work, this does exactly what is needed. The only comment would be to change let to const since we never change the value of message. Good job Shima.

console.log(message);
console.log(typeof message);
4 changes: 3 additions & 1 deletion exercises/E-strings-concatenation/exercise.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
// Start by creating a variable `message`

let greeting = "Hello, "
let myname = "My name is Shima"
let message = greeting + myname;
console.log(message);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fantastic work, this does the job, again it's just changing let to const since you never change the values of each variable. 👍

5 changes: 4 additions & 1 deletion exercises/F-strings-methods/exercise.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
// Start by creating a variable `message`
let firstname = "shima";
let nameLength = firstname.length;
console.log(nameLength);

console.log(message);
console.log ("My name is " + firstname + " and it has " + nameLength + " characters");

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is perfect, the only comment again would be let to const, but this feedback applies throughout the entire PR when the value isn't changed so I'll stop repeating it.

You did a great job here Shima :)

2 changes: 1 addition & 1 deletion exercises/F-strings-methods/exercise2.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
const name = " Daniel ";

let message = name.trim();
console.log(message);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You're on the right track here Shima, we need this exercise to output the following string:

My name is Daniel and my name is 6 characters long

You are currently outputting this:

Daniel

4 changes: 4 additions & 0 deletions exercises/G-numbers/exercise.js
Original file line number Diff line number Diff line change
@@ -1 +1,5 @@
// Start by creating a variables `numberOfStudents` and `numberOfMentors`
let numberOfStudents = 15;
let numberOfMentors = 8;
let sum = numberOfStudents + numberOfMentors;
console.log(`Total number of the students and mentors: ${sum}`);

@Gevie Gevie Sep 15, 2022

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very good, you are almost there!

This exercise needs you to output a string like the following:

Number of students: 15
Number of mentors: 8
Total number of students and mentors: 23

You are currently outputting

Total number of the students and mentors: 23

Also, great usage of backticks! I really like seeing that 👍

4 changes: 4 additions & 0 deletions exercises/I-floats/exercise.js
Original file line number Diff line number Diff line change
@@ -1,2 +1,6 @@
var numberOfStudents = 15;
var numberOfMentors = 8;
var precentageOfStudents = (numberOfStudents / (numberOfStudents + numberOfMentors))*100;
var precentageOfMentors = (numberOfMentors / (numberOfStudents + numberOfMentors))*100;
console.log(Math.round(precentageOfStudents));
console.log(Math.round (precentageOfMentors));

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You are so close to the correct answer here.

We need you to output the following string:

Percentage students: 65%
Percentage mentors: 35%

You are currently outputting the following strings:

65
35

A little bit of string manipulation / concatenation and you have this in the bag :)

2 changes: 2 additions & 0 deletions exercises/J-functions/exercise.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
function halve(number) {
// complete the function here
return number / 2;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is correct 🥇

I would advise maybe wrapping the return in parenthesis to make it more obvious a calculation is happening, for example return (number / 2);

As well as this, you have an extra console.log(halve(20)); which I imagine was due to testing? This isn't a part of the exercise so can be removed :)

}

var result = halve(12);

console.log(result);
console.log(halve(20));
1 change: 1 addition & 0 deletions exercises/J-functions/exercise2.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
function triple(number) {
// complete function here
return 3 * number;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome, this works also.

I would again advise using parenthesis to make it more clear, also it is very inconsequential but often we write it as (number * 3) instead of 3 * number but it really doesn't matter. What you did is great 👍

}

var result = triple(12);
Expand Down
3 changes: 2 additions & 1 deletion exercises/K-functions-parameters/exercise.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
// Complete the function so that it takes input parameters
function multiply() {
function multiply(num1,num2) {
// Calculate the result of the function and return it
return num1 * num2;
}

// Assign the result of calling the function the variable `result`
Expand Down
3 changes: 3 additions & 0 deletions exercises/K-functions-parameters/exercise2.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
// Declare your function first
function divide(num1,num2) {
return num1 / num2;
}

var result = divide(3, 4);

Expand Down
3 changes: 3 additions & 0 deletions exercises/K-functions-parameters/exercise3.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
// Write your function here
function createGreeting(name){
return "Hello my name is, " + name;
}

var greeting = createGreeting("Daniel");

Expand Down
5 changes: 4 additions & 1 deletion exercises/K-functions-parameters/exercise4.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
// Declare your function first
function addTwonumbers(num1,num2){
return num1 + num2;
}

// Call the function and assign to a variable `sum`

let sum = addTwonumbers(13,124);
console.log(sum);
3 changes: 3 additions & 0 deletions exercises/K-functions-parameters/exercise5.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
// Declare your function here
function createLongGreeting(name,age){

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great job, I like that you named your arguments/variables name and age instead of something like a and b. Really well done Shima 👍

return `Hello, my name is ${name} and I am ${age} years old`;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fantastic use of backticks here instead of the + concatenation method.

}

const greeting = createLongGreeting("Daniel", 30);

Expand Down
8 changes: 8 additions & 0 deletions exercises/L-functions-nested/exercise.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,11 @@ var mentor2 = "Irina";
var mentor3 = "Mimi";
var mentor4 = "Rob";
var mentor5 = "Yohannes";
function shoutyGreeting(name){
return "HELLO " + name.toUpperCase()
}
console.log(shoutyGreeting(mentor1));
console.log(shoutyGreeting(mentor2));
console.log(shoutyGreeting(mentor3));
console.log(shoutyGreeting(mentor4));
console.log(shoutyGreeting(mentor5));
9 changes: 7 additions & 2 deletions extra/1-currency-conversion.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,10 @@
Write a function that converts a price to USD (exchange rate is 1.4 $ to £)
*/

function convertToUSD() {}
function convertToUSD(prices) {
return prices * 1.4;

}

/*
CURRENCY CONVERSION
Expand All @@ -15,7 +18,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(prices) {
return 5.7 * (.99 * prices).toFixed(2);
}

/* ======= TESTS - DO NOT MODIFY =====
There are some Tests in this file that will help you work out if your code is working.
Expand Down
41 changes: 23 additions & 18 deletions mandatory/1-syntax-errors.js
Original file line number Diff line number Diff line change
@@ -1,17 +1,22 @@
// 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;
}
console.log(addNumbers(3,4,5));

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";
}
console.log(introduceMe("Sima" , 35));

function getTotal(a, b) {
total = a ++ b;
function getTotal(a, b) {
total = a + b;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We could add const here.


return "The total is total";
}
return "The total is " + total;
}

console.log(getTotal(23,5));

/*
===================================================
Expand All @@ -25,16 +30,16 @@ 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);
});
// test("addNumbers adds numbers correctly", () => {
// 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"
);
});
// test("introduceMe function returns the correct string", () => {
// 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");
});
// test("getTotal returns a string describing the total", () => {
// expect(getTotal(23, 5)).toEqual("The total is 28");
// });
59 changes: 31 additions & 28 deletions mandatory/2-logic-error.js
Original file line number Diff line number Diff line change
@@ -1,17 +1,20 @@
// The syntax for this function is valid but it has an error, find it and fix it.

function trimWord(word) {
return wordtrim();
}

function getStringLength(word) {
return "word".length();
return word.trim();
}
console.log(trimWord(" CodeYourFuture "));

function getStringLength(word) {
return word.length;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would take notice on your indentation... at some points you indent by 2 spaces and at other points you indent by 4 spaces.

We have a guide on indentation here: https://syllabus.codeyourfuture.io/guides/code-style-guide#indent-your-code

}
console.log(trimWord(" CodeYourFuture teaches coding "));
function multiply(a, b, c) {
a * b * c;
return;
}
return a * b * c;

}
console.log(multiply(3,5,7));
console.log(getStringLength("Hello I am working"));

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Again, very well done on this exercise, you did it all correctly 👍 🥇


/*
===================================================
Expand All @@ -24,28 +27,28 @@ 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");
});
// test("trimWord trims leading and trailing whitespace", () => {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi Shima, we shouldn't be commenting out or modifying the test cases. These are here to ensure that your work passes the predefined tests.

Would you be able to undo this and restore it the way it was originally?

// 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"
);
});
// test("trimWord doesn't remove whitespace in the middle of the string", () => {
// expect(trimWord(" CodeYourFuture teaches coding ")).toEqual(
// "CodeYourFuture teaches coding"
// );
// });

test("getStringLength returns the length of a word", () => {
expect(getStringLength("Turtles")).toEqual(7);
});
// test("getStringLength returns the length of a word", () => {
// expect(getStringLength("Turtles")).toEqual(7);
// });

test("getStringLength returns the length of a sentence", () => {
expect(getStringLength("A wild sentence appeared!")).toEqual(25);
});
// test("getStringLength returns the length of a sentence", () => {
// expect(getStringLength("A wild sentence appeared!")).toEqual(25);
// });

test("multiply multiplies numbers", () => {
expect(multiply(2, 3, 6)).toEqual(36);
});
// test("multiply multiplies numbers", () => {
// expect(multiply(2, 3, 6)).toEqual(36);
// });

test("multiply multiplies different numbers", () => {
expect(multiply(2, 3, 4)).toEqual(24);
});
// test("multiply multiplies different numbers", () => {
// expect(multiply(2, 3, 4)).toEqual(24);
// });
5 changes: 4 additions & 1 deletion mandatory/3-function-output.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
// Add comments to explain what this function does. You're meant to use Google!
// This Function uses the Math random function to choose a random number bbetween zero and one and
//then multiply it by 10.
function getRandomNumber() {
return Math.random() * 10;
}

// Add comments to explain what this function does. You're meant to use Google!
//This Function combine the frist and second parameter which they both are strings.
function combine2Words(word1, word2) {
return word1.concat(word2);
}

//This function concatenate all the parameters which they can be string or numbers.
function concatenate(firstWord, secondWord, thirdWord) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There seems to be a missing line here, I'm not sure why? It should have the following within the body of the function:

return firstWord.concat(' ', secondWord, ' ', thirdWord);

It doesn't show in this code review but don't worry, your explanation is correct so we can just move on from here.

// 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.
Expand Down
11 changes: 9 additions & 2 deletions mandatory/4-tax.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,10 @@
Sales tax is 20% of the price of the product.
*/

function calculateSalesTax() {}
function calculateSalesTax(price) {
return price * 1.2;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very well done Shima! I have seen some other solutions which were more complicated, you took a very simple approach and I like it :)

}
console.log(calculateSalesTax(17.5));

/*
CURRENCY FORMATTING
Expand All @@ -17,7 +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(price) {
return "£" + calculateSalesTax(price).toFixed(2) ;
}
console.log( addTaxAndFormatCurrency(17.5));

/*
===================================================
Expand All @@ -34,6 +40,7 @@ test("calculateSalesTax for £15", () => {
expect(calculateSalesTax(15)).toEqual(18);
});


test("calculateSalesTax for £17.50", () => {
expect(calculateSalesTax(17.5)).toEqual(21);
});
Expand Down
12 changes: 9 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,21 @@
"url": "https://github.com/CodeYourFuture/JavaScript-Core-1-Coursework-Week1/issues"
},
"jest": {
"setupFilesAfterEnv": ["jest-extended"],
"setupFilesAfterEnv": [
"jest-extended"
],
"projects": [
{
"displayName": "mandatory",
"testMatch": ["<rootDir>/mandatory/*.js"]
"testMatch": [
"<rootDir>/mandatory/*.js"
]
},
{
"displayName": "extra",
"testMatch": ["<rootDir>/extra/*.js"]
"testMatch": [
"<rootDir>/extra/*.js"
]
}
]
},
Expand Down