-
-
Notifications
You must be signed in to change notification settings - Fork 279
London Class 8 - Daniel Piga- JavaScript-Core-1-Coursework-Week3 London 8 #3
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| { | ||
| "cSpell.words": [ | ||
| "Libor" | ||
| ] | ||
| } | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,12 +1,21 @@ | ||
| /* | ||
| while loops can be useful when you want to execute some code as long as some condition is true. | ||
| // /* | ||
| // while loops can be useful when you want to execute some code as long as some condition is true. | ||
|
|
||
| Using a while loop, complete the function below so it logs (using console.log) the first n even numbers as a comma-seperated string. | ||
| The list of numbers should start with 0. n is being passed in as a parameter. | ||
| */ | ||
| // Using a while loop, complete the function below so it logs (using console.log) the first n even numbers as a comma-separated string. | ||
| // The list of numbers should start with 0. n is being passed in as a parameter. | ||
| // */ | ||
|
|
||
| function evenNumbers(n) { | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Greetings Daniel It took me a while to figure out why you were using n * 2 and count % 2
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Hello Delroy, There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. You are most welcome. Great work! There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Since you like operations over collections, how about this :) function evenNumbers(n) {
console.log([...Array(n).keys()].map(x => x * 2).join(','))
} |
||
| // TODO | ||
| let count = 1; | ||
| let number = 0; | ||
| let result = "0"; | ||
| while (count < n) { | ||
| count++; | ||
| number += 2; | ||
| result += "," + number; | ||
| } | ||
| if (n === 0) result = ""; | ||
| console.log(result); | ||
| } | ||
|
|
||
| evenNumbers(3); // should output 0,2,4 | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -5,19 +5,21 @@ | |
| */ | ||
|
|
||
| const BIRTHDAYS = [ | ||
| "January 7th", | ||
| "February 12th", | ||
| "April 3rd", | ||
| "April 5th", | ||
| "May 3rd", | ||
| "July 11th", | ||
| "July 17th", | ||
| "September 28th", | ||
| "November 15th" | ||
| "January 7th", | ||
| "February 12th", | ||
| "April 3rd", | ||
| "April 5th", | ||
| "May 3rd", | ||
| "July 11th", | ||
| "July 17th", | ||
| "September 28th", | ||
| "November 15th", | ||
| ]; | ||
|
|
||
| function findFirstJulyBDay(birthdays) { | ||
| // TODO | ||
| for (let day of birthdays) { | ||
| if (day === "July 11th") return day; | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This passes the test but technically this is not correct. If I update BIRTHDAY and add a new July date before "July 11th" - the code will not work correctly. I'd expect it to be |
||
| } | ||
| } | ||
|
|
||
| console.log(findFirstJulyBDay(BIRTHDAYS)); // should output "July 11th" | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -7,9 +7,17 @@ | |
| */ | ||
|
|
||
| function evenNumbersSum(n) { | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Dear Daniel However when I tested your function it gave the wrong answers for n=2,4,5. Look at my other comments regarding evenNumbers(n) as a starting point.
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes thanks, is not working properly. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Excellent! |
||
| // TODO | ||
| let current = 0; | ||
| let total = 0; | ||
| let number = 0; | ||
| do { | ||
| total += number; | ||
| number += 2; | ||
| current++; | ||
| } while (current < n); | ||
| return total; | ||
| } | ||
|
|
||
| console.log(evenNumbersSum(3)); // should output 6 | ||
| console.log(evenNumbersSum(0)); // should output 0 | ||
| console.log(evenNumbersSum(10)); // should output 90 | ||
| console.log(evenNumbersSum(10)); // should output 90 | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -11,21 +11,17 @@ | |
| */ | ||
|
|
||
| const WRITERS = [ | ||
| "Virginia Woolf", | ||
| "Zadie Smith", | ||
| "Jane Austen", | ||
| "Bell Hooks", | ||
| "Yukiko Motoya" | ||
| ] | ||
|
|
||
| const AGES = [ | ||
| 59, | ||
| 40, | ||
| 41, | ||
| 63, | ||
| 49 | ||
| "Virginia Woolf", | ||
| "Zadie Smith", | ||
| "Jane Austen", | ||
| "Bell Hooks", | ||
| "Yukiko Motoya", | ||
| ]; | ||
|
|
||
| const AGES = [59, 40, 41, 63, 49]; | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Excellent! |
||
| for (let i = 0; i < AGES.length; i++) { | ||
| console.log(`${WRITERS[i]} is ${AGES[i]} years old`); | ||
| } | ||
| // TODO - Write for loop code here | ||
|
|
||
| /* | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -4,13 +4,18 @@ | |
|
|
||
| // TODO Use a for-of loop to output each of the tube stations below. | ||
| let tubeStations = [ | ||
| "Aldgate", | ||
| "Baker Street", | ||
| "Picadilly Circus", | ||
| "Oxford Street", | ||
| "Tottenham Court Road" | ||
| "Aldgate", | ||
| "Baker Street", | ||
| "Picadilly Circus", | ||
| "Oxford Street", | ||
| "Tottenham Court Road", | ||
| ]; | ||
|
|
||
| for (let name of tubeStations) { | ||
| console.log(name); | ||
| } | ||
|
|
||
| // TODO Use a for-of loop to capitalise and output each letter in the string seperately. | ||
| let str = "codeyourfuture"; | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Excellent! |
||
| for (let letter of str) { | ||
| console.log(letter.toUpperCase()); | ||
| } | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -2,7 +2,7 @@ | |
| Imagine we're making a weather app! | ||
|
|
||
| We have a list of cities that the user wants to track. | ||
| We also already have a temperatureService function which will take a city as a parameter and return a temparature. | ||
| We also already have a temperatureService function which will take a city as a parameter and return a temperature. | ||
|
|
||
| Implement the function below: | ||
| - take the array of cities as a parameter | ||
|
|
@@ -12,52 +12,45 @@ | |
| */ | ||
|
|
||
| function getTemperatureReport(cities) { | ||
| // TODO | ||
| return cities.map(function(city){ return`The temperature in ${city} is ${temperatureService(city)} degrees`} | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Could be even more streamlined with lambdas :) return cities.map(city => |
||
| ); | ||
| } | ||
|
|
||
|
|
||
| /* ======= TESTS - DO NOT MODIFY ===== */ | ||
|
|
||
| function temperatureService(city) { | ||
| let temparatureMap = new Map(); | ||
|
|
||
| temparatureMap.set('London', 10); | ||
| temparatureMap.set('Paris', 12); | ||
| temparatureMap.set('Barcelona', 17); | ||
| temparatureMap.set('Dubai', 27); | ||
| temparatureMap.set('Mumbai', 29); | ||
| temparatureMap.set('São Paulo', 23); | ||
| temparatureMap.set('Lagos', 33); | ||
| return temparatureMap.get(city); | ||
| let temparatureMap = new Map(); | ||
|
|
||
| temparatureMap.set("London", 10); | ||
| temparatureMap.set("Paris", 12); | ||
| temparatureMap.set("Barcelona", 17); | ||
| temparatureMap.set("Dubai", 27); | ||
| temparatureMap.set("Mumbai", 29); | ||
| temparatureMap.set("São Paulo", 23); | ||
| temparatureMap.set("Lagos", 33); | ||
|
|
||
| return temparatureMap.get(city); | ||
| } | ||
|
|
||
| test("should return a temperature report for the user's cities", () => { | ||
| let usersCities = [ | ||
| "London", | ||
| "Paris", | ||
| "São Paulo" | ||
| ] | ||
|
|
||
| expect(getTemperatureReport(usersCities)).toEqual([ | ||
| "The temperature in London is 10 degrees", | ||
| "The temperature in Paris is 12 degrees", | ||
| "The temperature in São Paulo is 23 degrees" | ||
| ]); | ||
| let usersCities = ["London", "Paris", "São Paulo"]; | ||
|
|
||
| expect(getTemperatureReport(usersCities)).toEqual([ | ||
| "The temperature in London is 10 degrees", | ||
| "The temperature in Paris is 12 degrees", | ||
| "The temperature in São Paulo is 23 degrees", | ||
| ]); | ||
| }); | ||
|
|
||
| test("should return a temperature report for the user's cities (alternate input)", () => { | ||
| let usersCities = [ | ||
| "Barcelona", | ||
| "Dubai" | ||
| ] | ||
|
|
||
| expect(getTemperatureReport(usersCities)).toEqual([ | ||
| "The temperature in Barcelona is 17 degrees", | ||
| "The temperature in Dubai is 27 degrees" | ||
| ]); | ||
| let usersCities = ["Barcelona", "Dubai"]; | ||
|
|
||
| expect(getTemperatureReport(usersCities)).toEqual([ | ||
| "The temperature in Barcelona is 17 degrees", | ||
| "The temperature in Dubai is 27 degrees", | ||
| ]); | ||
| }); | ||
|
|
||
| test("should return an empty array if the user hasn't selected any cities", () => { | ||
| expect(getTemperatureReport([])).toEqual([]); | ||
| }); | ||
| expect(getTemperatureReport([])).toEqual([]); | ||
| }); | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -5,20 +5,24 @@ | |
|
|
||
| // This function shouldn't be changed | ||
| function generateRandomNumber() { | ||
| console.log("Generating number..."); | ||
| return Math.round(Math.random() * 100); | ||
| console.log("Generating number..."); | ||
| return Math.round(Math.random() * 100); | ||
| } | ||
|
|
||
| function getRandomNumberGreaterThan50() { | ||
| // TODO - implement using a do-while loop | ||
| let res; | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Excellent! |
||
| do { | ||
| res = generateRandomNumber(); | ||
| } while (res <= 50); | ||
| return res; | ||
| } | ||
|
|
||
| /* ======= TESTS - DO NOT MODIFY ===== */ | ||
|
|
||
| test("Returned value should always be greater than 50", () => { | ||
| expect(getRandomNumberGreaterThan50()).toBeGreaterThan(50); | ||
| expect(getRandomNumberGreaterThan50()).toBeGreaterThan(50); | ||
| expect(getRandomNumberGreaterThan50()).toBeGreaterThan(50); | ||
| expect(getRandomNumberGreaterThan50()).toBeGreaterThan(50); | ||
| expect(getRandomNumberGreaterThan50()).toBeGreaterThan(50); | ||
| expect(getRandomNumberGreaterThan50()).toBeGreaterThan(50); | ||
| expect(getRandomNumberGreaterThan50()).toBeGreaterThan(50); | ||
| expect(getRandomNumberGreaterThan50()).toBeGreaterThan(50); | ||
| expect(getRandomNumberGreaterThan50()).toBeGreaterThan(50); | ||
| expect(getRandomNumberGreaterThan50()).toBeGreaterThan(50); | ||
| }); | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Consider using .gitignore to simplify the management of local files you don't want to push for a review. This is a good practice to master :)