From 3702612b93a7fd6c186e428232c961ab4968775d Mon Sep 17 00:00:00 2001 From: Abed Date: Thu, 26 Dec 2019 19:57:34 +0200 Subject: [PATCH 01/14] SHA's modification --- README.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index dbf980860..b103d2a06 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -> If you are following the HackYourFuture curriculum we recommend you to start with module 1: [HTML/CSS/GIT](https://github.com/HackYourFuture/HTML-CSS). To get a complete overview of the HackYourFuture curriculum first, click [here](https://github.com/HackYourFuture/curriculum). +> If you are following the curriculum we recommend you to start with module 1: [HTML/CSS/GIT](https://github.com/SocialHackersCodeSchool/HTML-CSS). To get a complete overview, click [here](https://github.com/SocialHackersCodeSchool/curriculum). > Please help us improve and share your feedback! If you find better tutorials -> or links, please share them by [opening a pull request](https://github.com/HackYourFuture/JavaScript1/pulls). +> or links, please share them by [opening a pull request](https://github.com/SocialHackersCodeSchool/JavaScript1/pulls). # Module #2 - JavaScript 1: Programming Basics (Frontend) @@ -71,8 +71,11 @@ If you have any questions or if something is not entirely clear ¯\\\_(ツ)\_/¯ Did you finish the module? Good job! You're doing great! -If you feel ready for the next challenge, click [here](https://www.github.com/HackYourFuture/JavaScript2) to go to JavaScript2! +If you feel ready for the next challenge, click [here](https://www.github.com/SocialHackersCodeSchool/JavaScript2) to go to JavaScript2! + +## Credit: +This curriculum is developed by [HackYourFuture](https://github.com/HackYourFuture), modifications, and +changes can be found in this Fork. -_The HackYourFuture curriculum is subject to CC BY copyright. This means you can freely use our materials, but just make sure to give us credit for it :)_ Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License. From 23530916f87cc40ef494abeae51e7ff979aff4a5 Mon Sep 17 00:00:00 2001 From: Abed Date: Thu, 26 Dec 2019 20:09:16 +0200 Subject: [PATCH 02/14] SHA modification. --- Week1/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Week1/README.md b/Week1/README.md index ecfaf004b..ea3ed54a9 100644 --- a/Week1/README.md +++ b/Week1/README.md @@ -56,7 +56,7 @@ There are various languages, each made to fulfill a certain need. For example, M ## 1. What is web development? -In HackYourFuture we focus on `web` programmming (also known as `web development`): writing code that creates websites and web applications. Look at the following video to learn about what you'll be doing: +In this course we focus on `web` programmming (also known as `web development`): writing code that creates websites and web applications. Look at the following video to learn about what you'll be doing: - [What does a web developer do?](https://www.youtube.com/watch?v=GEfuOMzRgXo) From d7d834e0aae484bfb60e8db990868657a79cf716 Mon Sep 17 00:00:00 2001 From: Abed Date: Thu, 9 Jan 2020 21:49:41 +0200 Subject: [PATCH 03/14] Update hand-in-homework-guide.md --- hand-in-homework-guide.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hand-in-homework-guide.md b/hand-in-homework-guide.md index d1d1466b7..7c4e0ca0e 100644 --- a/hand-in-homework-guide.md +++ b/hand-in-homework-guide.md @@ -8,7 +8,7 @@ Follow the walkthrough to learn how to submit your homework for each week: ONE TIME ONLY (START OF EVERY MODULE) -1. Create a [fork](https://help.github.com/en/articles/fork-a-repo) of the module repository. For JavaScript1, the module repository is `https://www.github.com/HackYourHomework/JavaScript1`. (You can find the `fork` option on the top right corner of the repository.) +1. Create a [fork](https://help.github.com/en/articles/fork-a-repo) of the module repository. For JavaScript1, the module repository is `https://www.github.com/SocialHackersClass10/JavaScript1`. (You can find the `fork` option on the top right corner of the repository.) 2. Navigate to the URL of the cloned repository (it should be in your personal GitHub account, under "repositories") 3. Clone the repository, using SSH, to your local machine. You can do this by typing in `git clone ` in the command line 4. On your local machine, navigate to the folder using the command line @@ -20,7 +20,7 @@ EVERY WEEK 2. Create a folder called `homework` inside of each week's folder. So for example, inside of the `Week1` folder, create a new folder called `homework` 3. Once you're finished, add and commit everything. Make the commit message meaningful, for example `finished project for homework week1` 4. Push the branch to your forked repository -5. On the GitHub page of your forked repository, click on the `create pull request` button. Make sure that the `base repository` is the module repository E.g. `https://www.github.com/HackYourHomework/JavaScript1`, on branch `master`. +5. On the GitHub page of your forked repository, click on the `create pull request` button. Make sure that the `base repository` is the module repository E.g. `https://www.github.com/SocialHackersClass10/JavaScript1`, on branch `master`. 6. Give the pull request a title in the following format: ```markdown From 15200f84c303d8854cb7ab55c8adde853b69f2e9 Mon Sep 17 00:00:00 2001 From: SalvadorCab <44257545+SalvadorCab@users.noreply.github.com> Date: Fri, 7 Feb 2020 11:08:52 -0600 Subject: [PATCH 04/14] Create js-exercises --- Week1/homework/js-exercises | 1 + 1 file changed, 1 insertion(+) create mode 100644 Week1/homework/js-exercises diff --git a/Week1/homework/js-exercises b/Week1/homework/js-exercises new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/Week1/homework/js-exercises @@ -0,0 +1 @@ + From 5b1fdbd20fab4913749317818c6f3503baefc5d8 Mon Sep 17 00:00:00 2001 From: SalvadorCab <44257545+SalvadorCab@users.noreply.github.com> Date: Fri, 7 Feb 2020 11:12:41 -0600 Subject: [PATCH 05/14] Delete js-exercises --- Week1/homework/js-exercises | 1 - 1 file changed, 1 deletion(-) delete mode 100644 Week1/homework/js-exercises diff --git a/Week1/homework/js-exercises b/Week1/homework/js-exercises deleted file mode 100644 index 8b1378917..000000000 --- a/Week1/homework/js-exercises +++ /dev/null @@ -1 +0,0 @@ - From 714d33a430247c1932b46a086286948218d7562a Mon Sep 17 00:00:00 2001 From: SalvadorCab <44257545+SalvadorCab@users.noreply.github.com> Date: Fri, 7 Feb 2020 11:13:04 -0600 Subject: [PATCH 06/14] Create logHello.js --- Week1/homework/js-exercises/logHello.js | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 Week1/homework/js-exercises/logHello.js diff --git a/Week1/homework/js-exercises/logHello.js b/Week1/homework/js-exercises/logHello.js new file mode 100644 index 000000000..e1dcb0da1 --- /dev/null +++ b/Week1/homework/js-exercises/logHello.js @@ -0,0 +1,10 @@ +console.log("Halo, dunia!"); +console.log("Hello, world!"); +console.log("Hallo, Welt!"); +console.log("Alo, monde!"); +console.log("Hola, mundo!"); +console.log("Ciao, mondo!"); +console.log("Γειά, κόσμο!"); +console.log("اهلا، دنية!"); +console.log("Привет, космо!"); +console.log("速度, 随风倒"); From 485487a14b76b14b14693124cd05af3116098e80 Mon Sep 17 00:00:00 2001 From: SalvadorCab <44257545+SalvadorCab@users.noreply.github.com> Date: Fri, 7 Feb 2020 11:13:38 -0600 Subject: [PATCH 07/14] Add files via upload --- .../js-exercises/LogAnArrayOfAnimals.js | 9 +++ .../js-exercises/RoundNumberAndLogIt.js | 19 +++++++ Week1/homework/js-exercises/compareArrays.js | 11 ++++ Week1/homework/js-exercises/errorDebugging.js | 6 ++ Week1/homework/js-exercises/logTheNumber.js | 6 ++ .../homework/js-exercises/logTheRemainder.js | 11 ++++ Week1/homework/js-exercises/logTheString.js | 12 ++++ Week1/homework/js-exercises/stringLength.js | 57 +++++++++++++++++++ Week1/homework/js-exercises/typeChecker.js | 15 +++++ 9 files changed, 146 insertions(+) create mode 100644 Week1/homework/js-exercises/LogAnArrayOfAnimals.js create mode 100644 Week1/homework/js-exercises/RoundNumberAndLogIt.js create mode 100644 Week1/homework/js-exercises/compareArrays.js create mode 100644 Week1/homework/js-exercises/errorDebugging.js create mode 100644 Week1/homework/js-exercises/logTheNumber.js create mode 100644 Week1/homework/js-exercises/logTheRemainder.js create mode 100644 Week1/homework/js-exercises/logTheString.js create mode 100644 Week1/homework/js-exercises/stringLength.js create mode 100644 Week1/homework/js-exercises/typeChecker.js diff --git a/Week1/homework/js-exercises/LogAnArrayOfAnimals.js b/Week1/homework/js-exercises/LogAnArrayOfAnimals.js new file mode 100644 index 000000000..f8931e08b --- /dev/null +++ b/Week1/homework/js-exercises/LogAnArrayOfAnimals.js @@ -0,0 +1,9 @@ +/* + Declare a variable called mySentence and initialize it with the following string: "Programming is so interesting!". + Figure out (using Google) how to get the length of mySentence. + Write a console.log statement to log the length of mySentence. + +*/ + +let mySentence = "Programming is so interesting!"; +console.log(mySentence.length); diff --git a/Week1/homework/js-exercises/RoundNumberAndLogIt.js b/Week1/homework/js-exercises/RoundNumberAndLogIt.js new file mode 100644 index 000000000..343c190ad --- /dev/null +++ b/Week1/homework/js-exercises/RoundNumberAndLogIt.js @@ -0,0 +1,19 @@ +/* + Declare variable and assign to it an empty array. Make sure that the name of the variable indicates it contains more than 1 item. For example items instead of item. + Write a console.log statement that explains in words what you think the value of the array is. + Write a console.log statement that logs the array. + Create a new variable with an array that has 3 of your favorite animals, each in a different string. Make sure the name of the variables says something about what the variable contains. + Write a console.log statement that logs the second array. + Add a statement that adds another string ("Piglet)" to the array of animals. + Write a console.log statement that logs the second array! +*/ + +let myItems = []; +console.log("The array myItems must have no value at all"); +console.log(myItems); + +let myFavoriteAnimals = ["tiger", "lion", "turtle"]; +console.log(myFavoriteAnimals); + +myFavoriteAnimals.push("Piglet"); +console.log(myFavoriteAnimals); \ No newline at end of file diff --git a/Week1/homework/js-exercises/compareArrays.js b/Week1/homework/js-exercises/compareArrays.js new file mode 100644 index 000000000..47e6fae43 --- /dev/null +++ b/Week1/homework/js-exercises/compareArrays.js @@ -0,0 +1,11 @@ + +const myFirstArray = [1, 2, 3, 4]; +const mySecondArray = [1, 2, 3, 4, 5, 6, 7]; + +console.log("The length of myFirstArray is " + myFirstArray.length); +console.log("The length of mySecondArray is " + mySecondArray.length); + +if(myFirstArray.length == mySecondArray.length) + console.log("They are the same!"); +else + console.log("Two different sizes"); \ No newline at end of file diff --git a/Week1/homework/js-exercises/errorDebugging.js b/Week1/homework/js-exercises/errorDebugging.js new file mode 100644 index 000000000..6d58af10b --- /dev/null +++ b/Week1/homework/js-exercises/errorDebugging.js @@ -0,0 +1,6 @@ +let numberX; +console.log("The value of variable numberX must be undefined by now"); +console.log(numberX); +numberX = 10; +console.log("The value of variable numberX must be 10 by now"); +console.log(numberX); \ No newline at end of file diff --git a/Week1/homework/js-exercises/logTheNumber.js b/Week1/homework/js-exercises/logTheNumber.js new file mode 100644 index 000000000..51fc5e89a --- /dev/null +++ b/Week1/homework/js-exercises/logTheNumber.js @@ -0,0 +1,6 @@ +let myString; +console.log("The value of variable myString must be undefined by now"); +console.log(myString); +numberX = "I'm a String"; +console.log("The value of variable myString must be \"I'm a String\" by now"); +console.log(myString); \ No newline at end of file diff --git a/Week1/homework/js-exercises/logTheRemainder.js b/Week1/homework/js-exercises/logTheRemainder.js new file mode 100644 index 000000000..47e6fae43 --- /dev/null +++ b/Week1/homework/js-exercises/logTheRemainder.js @@ -0,0 +1,11 @@ + +const myFirstArray = [1, 2, 3, 4]; +const mySecondArray = [1, 2, 3, 4, 5, 6, 7]; + +console.log("The length of myFirstArray is " + myFirstArray.length); +console.log("The length of mySecondArray is " + mySecondArray.length); + +if(myFirstArray.length == mySecondArray.length) + console.log("They are the same!"); +else + console.log("Two different sizes"); \ No newline at end of file diff --git a/Week1/homework/js-exercises/logTheString.js b/Week1/homework/js-exercises/logTheString.js new file mode 100644 index 000000000..081d28fe6 --- /dev/null +++ b/Week1/homework/js-exercises/logTheString.js @@ -0,0 +1,12 @@ +let z = 7.25; +console.log(z); +let a = Math.round(z); +console.log(a); + +let biggestNumber; +if(a < z) + biggestNumber = z; +else + biggestNumber = a; + +console.log(biggestNumber); \ No newline at end of file diff --git a/Week1/homework/js-exercises/stringLength.js b/Week1/homework/js-exercises/stringLength.js new file mode 100644 index 000000000..0a682f502 --- /dev/null +++ b/Week1/homework/js-exercises/stringLength.js @@ -0,0 +1,57 @@ +/* +Write a program that checks the data types of two variables and logs to the console SAME TYPE if they are the +same type. If they are different types log Not the same.... + + Declare 4 variables: 2 must be strings and 2 must be objects + Create 6 conditional statements, where for each you check if the data type of one variable is the same as + the other + Find out how to check the type of a variable + Write 2 console.log statements to log the type of 2 variables, each with a different data type + Now compare the types of your different variables with one another + Log Not the same... when the types are different +*/ + +let cadena1 = "¡Adiós "; +let cadena2 = "Mundo Cruel!"; +let numero1 = 5; +let booleano1 = true; + +console.log(typeof cadena1); +console.log(typeof booleano1); + +console.log("Comparing cadena1 and cadena2:"); +if(typeof cadena1 == typeof cadena2) + console.log("SAME TYPE!"); +else + console.log("Not the same..."); + +console.log("Comparing cadena1 and numero1:"); +if(typeof cadena1 == typeof numero1) + console.log("SAME TYPE!"); +else + console.log("Not the same..."); + +console.log("Comparing cadena1 and booleano1:"); +if(typeof cadena1 == typeof booleano1) + console.log("SAME TYPE!"); +else + console.log("Not the same..."); + +console.log("Comparing cadena2 and numero1:"); +if(typeof cadena2 == typeof numero1) + console.log("SAME TYPE!"); +else + console.log("Not the same..."); + +console.log("Comparing cadena2 and booleano1:"); +if(typeof cadena2 == typeof booleano1) + console.log("SAME TYPE!"); +else + console.log("Not the same..."); + +console.log("Comparing numero1 and booleano1:"); +if(typeof numero1 == typeof booleano1) + console.log("SAME TYPE!"); +else + console.log("Not the same..."); + \ No newline at end of file diff --git a/Week1/homework/js-exercises/typeChecker.js b/Week1/homework/js-exercises/typeChecker.js new file mode 100644 index 000000000..434ebad68 --- /dev/null +++ b/Week1/homework/js-exercises/typeChecker.js @@ -0,0 +1,15 @@ + +/* If x equals 7, and the only other statement is x = x % 3, what would be the value of x after the +calculation? */ +console.log("2 times 3 is equal to 6, and the remainder to reach 7 is 1, so x = 1:"); +console.log(7 % 3); + +/* If y equals 21, and the only other statement is y = y % 4, what would be the value of y after the +calculation? */ +console.log("5 times 4 is equal to 20, and the remainder to reach 21 is 1, so y = 1:"); +console.log(21 % 4); + +/* If z equals 13, and the only other statement is z = z % 2, what would be the value of z after the +calculation? */ +console.log("6 times 2 is equal to 12, and the remainder to reach 13 is 1, so z = 1:"); +console.log(13 % 2); \ No newline at end of file From b961ab1c3b8e35f7e6d9640daa4e693c6294c04a Mon Sep 17 00:00:00 2001 From: SalvadorCab <44257545+SalvadorCab@users.noreply.github.com> Date: Tue, 11 Feb 2020 08:06:00 -0600 Subject: [PATCH 08/14] Create homework --- Week2/homework | 1 + 1 file changed, 1 insertion(+) create mode 100644 Week2/homework diff --git a/Week2/homework b/Week2/homework new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/Week2/homework @@ -0,0 +1 @@ + From 1444eacf771f13329bebf7f65c92c284fa1732c1 Mon Sep 17 00:00:00 2001 From: SalvadorCab <44257545+SalvadorCab@users.noreply.github.com> Date: Tue, 11 Feb 2020 08:09:03 -0600 Subject: [PATCH 09/14] Delete homework --- Week2/homework | 1 - 1 file changed, 1 deletion(-) delete mode 100644 Week2/homework diff --git a/Week2/homework b/Week2/homework deleted file mode 100644 index 8b1378917..000000000 --- a/Week2/homework +++ /dev/null @@ -1 +0,0 @@ - From 45f5a0ce5d1497fe6ca10e38d344d1948f75eaf5 Mon Sep 17 00:00:00 2001 From: SalvadorCab <44257545+SalvadorCab@users.noreply.github.com> Date: Tue, 11 Feb 2020 08:09:37 -0600 Subject: [PATCH 10/14] Create GradeCalculator.js --- Week2/homework/jsexercises/GradeCalculator.js | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 Week2/homework/jsexercises/GradeCalculator.js diff --git a/Week2/homework/jsexercises/GradeCalculator.js b/Week2/homework/jsexercises/GradeCalculator.js new file mode 100644 index 000000000..cd7bf6608 --- /dev/null +++ b/Week2/homework/jsexercises/GradeCalculator.js @@ -0,0 +1,27 @@ +/* + Write a function named giveCompliment + + It takes 1 argument: your name + Inside the function create an array with 10 strings. Each string should be a compliment, like "great", + "awesome" + Write logic that randomly selects a compliment + Return a string: "You are [COMPLIMENT], [YOUR_NAME]! + + Call the function three times, giving each function call the same argument: your name. +*/ + +function giveCompliment(name){ + const COMPLIMENTS = [ + "great", "awesome", "super", "extraordinary", "amazing", "wow", "incredible", "genius", + "fab", "brilliant" + ] + let randomNumber = Math.floor((Math.random() * 10)); + return "You are " + COMPLIMENTS[randomNumber] + " " + name; +} + +function main(){ + for(let i = 0; i < 3; i++) + console.log(giveCompliment("Sal")); +} + +main(); From 893b08440d09fcc117f11f798039b90c66541bb2 Mon Sep 17 00:00:00 2001 From: SalvadorCab <44257545+SalvadorCab@users.noreply.github.com> Date: Tue, 11 Feb 2020 08:09:56 -0600 Subject: [PATCH 11/14] Add files via upload --- Week2/homework/jsexercises/oddEvenReporter.js | 31 +++++++++++++++++++ Week2/homework/jsexercises/readingList.js | 29 +++++++++++++++++ Week2/homework/jsexercises/recipeCard.js | 23 ++++++++++++++ Week2/homework/jsexercises/removeCommas.js | 14 +++++++++ Week2/homework/jsexercises/whoWantsADrink.js | 29 +++++++++++++++++ 5 files changed, 126 insertions(+) create mode 100644 Week2/homework/jsexercises/oddEvenReporter.js create mode 100644 Week2/homework/jsexercises/readingList.js create mode 100644 Week2/homework/jsexercises/recipeCard.js create mode 100644 Week2/homework/jsexercises/removeCommas.js create mode 100644 Week2/homework/jsexercises/whoWantsADrink.js diff --git a/Week2/homework/jsexercises/oddEvenReporter.js b/Week2/homework/jsexercises/oddEvenReporter.js new file mode 100644 index 000000000..c7e6747a5 --- /dev/null +++ b/Week2/homework/jsexercises/oddEvenReporter.js @@ -0,0 +1,31 @@ +/* Declare a variable that holds an object (your meal recipe). + Give the object 3 properties: a title (string), a servings (number) and an ingredients (array of strings) property. + Log each property out seperately, using a loop (for, while or do/while) + +It should look similar to this: + +Meal name: Omelete +Serves: 2 +Ingredients: +4 eggs +2 strips of bacon +1 tsp salt/pepper +*/ + +let mealRecipe = { + title: "Enchiladas", + Serves: 4, + Ingredients: ["4 chilis", "cheese", "300 gr. chicken", "10 tortillas"] +} + +for(let data in mealRecipe){ + if(mealRecipe.hasOwnProperty(data)) { + if(Array.isArray(mealRecipe[data]) === true){ + console.log(data + ":"); + for(let i = 0; i < mealRecipe[data].length; i++) + console.log(mealRecipe[data][i]); + } + else + console.log(data + ": " + mealRecipe[data]); + } +} \ No newline at end of file diff --git a/Week2/homework/jsexercises/readingList.js b/Week2/homework/jsexercises/readingList.js new file mode 100644 index 000000000..ffebb4142 --- /dev/null +++ b/Week2/homework/jsexercises/readingList.js @@ -0,0 +1,29 @@ +/* + Create a loop that runs 5 times. On each iteration, push a drink into the drinkTray variable. The drinkTray can only hold at most two instances of the same drink type, for example it can only hold 2 colas, 2 lemonades, 2 waters. + If there are already two instances of a drinkType then start with the next drink in the array. + Your drinkTray should contain 2 cola, 2 lemonade and 1 water. + Log to the console: "Hey guys, I brought a [INSERT VALUES FROM ARRAY]!" (For example: "Hey guys, I + brought a cola, cola, lemonade, lemonade, water!") + +*/ + +let drinkTray = []; +let drinkTrayCounter = [0, 0, 0]; +const drinkTypes = ["cola", "lemonade", "water"]; + +for(let i = 0; i < 5; i++){ + + if(drinkTrayCounter[0] < 2){ + drinkTray.push(drinkTypes[0]); + drinkTrayCounter[0] += 1; + } + else if(drinkTrayCounter[1] < 2){ + drinkTray.push(drinkTypes[1]); + drinkTrayCounter[1] += 1; + } else { + drinkTray.push(drinkTypes[2]); + drinkTrayCounter[2] += 1; + } +} + +console.log("Hey guys, I brought a " + drinkTray.join(", ") + "!"); \ No newline at end of file diff --git a/Week2/homework/jsexercises/recipeCard.js b/Week2/homework/jsexercises/recipeCard.js new file mode 100644 index 000000000..0a27acaf8 --- /dev/null +++ b/Week2/homework/jsexercises/recipeCard.js @@ -0,0 +1,23 @@ +/* + Declare a variable that holds an array of 3 objects, where each object describes a book and has + properties for the title (string), author (string), and alreadyRead (boolean indicating if you read it yet). + Loop through the array of books. + For each book, log the book title and book author like so: "The Hobbit by J.R.R. Tolkien". + Create a conditional statement to change the log depending on whether you read it yet or not. If you + read it, log a string like You already read "The Hobbit" right after the log of the book details + If you haven't read it log a string like You still need to read "The Lord of the Rings" +*/ + +let books = [ + {title: "Lord of the Rings", author: "J.R.R. Tolkine", alreadyRead: true}, + {title: "The Lord of the Flies", author: "William Golding", alreadyRead: false}, + {title: "Pedro Páramo", author: "Juan Rulfo", alreadyRead: true} +] + +for(let i = 0; i < books.length; i++){ + console.log(books[i].title + " by " + books[i].author); + if(books[i].alreadyRead === true) + console.log("You already read " + books[i].title); + else + console.log("You still need to read " + books[i].title); +} \ No newline at end of file diff --git a/Week2/homework/jsexercises/removeCommas.js b/Week2/homework/jsexercises/removeCommas.js new file mode 100644 index 000000000..e940c373f --- /dev/null +++ b/Week2/homework/jsexercises/removeCommas.js @@ -0,0 +1,14 @@ +/* + Create a for loop, that iterates from 0 to 20. + Create a conditional statement that checks if the value of the counter variable is odd or even. + If it's odd, log to the console The number [PUT_NUMBER_HERE] is odd!. + If it's even, log to the console The number [PUT_NUMBER_HERE] is even!. + +*/ + +for(let i = 0; i < 21; i++) { + if(i % 2 === 0) + console.log("The number " + i + " is even!"); + else + console.log("The number " + i + " is odd!"); +} \ No newline at end of file diff --git a/Week2/homework/jsexercises/whoWantsADrink.js b/Week2/homework/jsexercises/whoWantsADrink.js new file mode 100644 index 000000000..ffebb4142 --- /dev/null +++ b/Week2/homework/jsexercises/whoWantsADrink.js @@ -0,0 +1,29 @@ +/* + Create a loop that runs 5 times. On each iteration, push a drink into the drinkTray variable. The drinkTray can only hold at most two instances of the same drink type, for example it can only hold 2 colas, 2 lemonades, 2 waters. + If there are already two instances of a drinkType then start with the next drink in the array. + Your drinkTray should contain 2 cola, 2 lemonade and 1 water. + Log to the console: "Hey guys, I brought a [INSERT VALUES FROM ARRAY]!" (For example: "Hey guys, I + brought a cola, cola, lemonade, lemonade, water!") + +*/ + +let drinkTray = []; +let drinkTrayCounter = [0, 0, 0]; +const drinkTypes = ["cola", "lemonade", "water"]; + +for(let i = 0; i < 5; i++){ + + if(drinkTrayCounter[0] < 2){ + drinkTray.push(drinkTypes[0]); + drinkTrayCounter[0] += 1; + } + else if(drinkTrayCounter[1] < 2){ + drinkTray.push(drinkTypes[1]); + drinkTrayCounter[1] += 1; + } else { + drinkTray.push(drinkTypes[2]); + drinkTrayCounter[2] += 1; + } +} + +console.log("Hey guys, I brought a " + drinkTray.join(", ") + "!"); \ No newline at end of file From f15ec08c4ca8b085d8b839fa0a78896df8582a47 Mon Sep 17 00:00:00 2001 From: SalvadorCab <44257545+SalvadorCab@users.noreply.github.com> Date: Tue, 11 Feb 2020 08:10:45 -0600 Subject: [PATCH 12/14] Create data.txt --- Week3/homework/data.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 Week3/homework/data.txt diff --git a/Week3/homework/data.txt b/Week3/homework/data.txt new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/Week3/homework/data.txt @@ -0,0 +1 @@ + From ffd6f6fa0302a2f94f71e25780d479852065f035 Mon Sep 17 00:00:00 2001 From: SalvadorCab <44257545+SalvadorCab@users.noreply.github.com> Date: Tue, 11 Feb 2020 08:11:26 -0600 Subject: [PATCH 13/14] Create DogYears.js --- Week3/homework/js-exercises/DogYears.js | 31 +++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 Week3/homework/js-exercises/DogYears.js diff --git a/Week3/homework/js-exercises/DogYears.js b/Week3/homework/js-exercises/DogYears.js new file mode 100644 index 000000000..f53243565 --- /dev/null +++ b/Week3/homework/js-exercises/DogYears.js @@ -0,0 +1,31 @@ +/* + Write a function named tellFortune. + + It takes 4 arguments: number of children (number), partner's name (string), geographic location (string), + job title (string). + Randomly select values from the arrays. + Return a string: "You will be a [JOB_TITLE] in [LOCATION], and married to [PARTNER_NAME] with [NUMBER_KIDS] kids." + + Create 4 arrays, numChildren, partnerNames, locations and jobs. Give each array 5 random values that make sense + Call the function 1 time, by passing the arrays as the argument. +*/ +const CHILDREN = [10, 2, 3, 4]; +const PARTNERNAMES = ["Erica", "Daniela", "Karla", "Susana"]; +const LOCATION = ["New York", "Paris", "London", "Spili"]; +const JOB = ["engineer", "lawyer", "diplomat", "porn actor"]; + +function tellFortune(children, partnerName, location, job){ + let cadena = "You will be a " + job + " in " + location + ", and married to " + partnerName + " with " + + children + " kids."; + return cadena; +} + +function main(){ + let randomNumbers = []; + for(let i = 0; i < 4; i++) + randomNumbers[i] = Math.floor(Math.random() * 4); + console.log(tellFortune(CHILDREN[randomNumbers[0]], PARTNERNAMES[randomNumbers[1]], LOCATION[randomNumbers[2]], + JOB[randomNumbers[3]])); +} + +main(); From 0dad1a2d1bdc727722a574b9a83f8979c678ca30 Mon Sep 17 00:00:00 2001 From: SalvadorCab <44257545+SalvadorCab@users.noreply.github.com> Date: Tue, 11 Feb 2020 08:11:56 -0600 Subject: [PATCH 14/14] Add files via upload --- Week3/homework/js-exercises/FortuneTeller.js | 26 ++++++ .../js-exercises/PROJECT/CreditCard.html | 26 ++++++ .../js-exercises/PROJECT/creditCard.css | 55 ++++++++++++ .../js-exercises/PROJECT/creditCard.js | 79 ++++++++++++++++++ .../js-exercises/PROJECT/images/lock.jpg | Bin 0 -> 23079 bytes .../js-exercises/PROJECT/images/tick.png | Bin 0 -> 15513 bytes .../js-exercises/PROJECT/images/xxxxx.png | Bin 0 -> 17649 bytes Week3/homework/js-exercises/YouAreAmazing.js | 23 +++++ .../js-exercises/supermarketShopping.js | 32 +++++++ Week3/homework/js-exercises/totalCost.js | 32 +++++++ 10 files changed, 273 insertions(+) create mode 100644 Week3/homework/js-exercises/FortuneTeller.js create mode 100644 Week3/homework/js-exercises/PROJECT/CreditCard.html create mode 100644 Week3/homework/js-exercises/PROJECT/creditCard.css create mode 100644 Week3/homework/js-exercises/PROJECT/creditCard.js create mode 100644 Week3/homework/js-exercises/PROJECT/images/lock.jpg create mode 100644 Week3/homework/js-exercises/PROJECT/images/tick.png create mode 100644 Week3/homework/js-exercises/PROJECT/images/xxxxx.png create mode 100644 Week3/homework/js-exercises/YouAreAmazing.js create mode 100644 Week3/homework/js-exercises/supermarketShopping.js create mode 100644 Week3/homework/js-exercises/totalCost.js diff --git a/Week3/homework/js-exercises/FortuneTeller.js b/Week3/homework/js-exercises/FortuneTeller.js new file mode 100644 index 000000000..38ea64984 --- /dev/null +++ b/Week3/homework/js-exercises/FortuneTeller.js @@ -0,0 +1,26 @@ +/* + Write a function named addToShoppingCart. + + It takes in 1 argument: a grocery item (string) + Add grocery item to array. If the amount of items is more than 3 remove the first one in the array + Return a string: "You bought [LIST_OF_GROCERY_ITEMS]!" + + Create an array with 2 predefined strings: "bananas" and "milk" + Call the function 3 times, each time with a different string as the argument. +*/ +let groceryList = ["bananas", "Milk"]; + +function addToShoppingCart(groceryItem){ + groceryList.push(groceryItem); + if(groceryList.length > 3) + groceryList.shift(); + return "You bought " + groceryList.join(", ") + "."; +} + +function main(){ + console.log(addToShoppingCart("wine")); + console.log(addToShoppingCart("cookies")); + console.log(addToShoppingCart("oranges")); +} + +main(); \ No newline at end of file diff --git a/Week3/homework/js-exercises/PROJECT/CreditCard.html b/Week3/homework/js-exercises/PROJECT/CreditCard.html new file mode 100644 index 000000000..9eed845a3 --- /dev/null +++ b/Week3/homework/js-exercises/PROJECT/CreditCard.html @@ -0,0 +1,26 @@ + + + + + + Credit Card Validator + + + + +
 
+ + +
+

CREDIT CARD VALIDATOR

+ + + Smiley face +

 

+
+ + +
 
+ + + diff --git a/Week3/homework/js-exercises/PROJECT/creditCard.css b/Week3/homework/js-exercises/PROJECT/creditCard.css new file mode 100644 index 000000000..33227e430 --- /dev/null +++ b/Week3/homework/js-exercises/PROJECT/creditCard.css @@ -0,0 +1,55 @@ +* { +padding: 0px; +margin: 0px; +box-sizing: border-box; +} + +body div { + height: 100vh; + float: left; + display: flex; + flex-flow: column wrap; + align-items: center; + color: white; +} + +h3 { + margin-top: 10px; +} + +input { + width: 70%; + margin-top: 10px; + margin-bottom: 10px; +} + +img { + width: 80px; + height: 80px; + margin-bottom: 30px; +} + +.leftSide { + width: 20%; + background: rgb(44, 43, 43); +} + +.centerSide { + width: 60%; + background: rgb(0, 0, 0); +} + +.rightSide { + width: 20%; + background: rgb(44, 43, 43); +} + +.validador { + width: 30%; + margin-top: 10px; + margin-bottom: 30px; +} + +.accessResult { + color: white; +} \ No newline at end of file diff --git a/Week3/homework/js-exercises/PROJECT/creditCard.js b/Week3/homework/js-exercises/PROJECT/creditCard.js new file mode 100644 index 000000000..1c95c2ea5 --- /dev/null +++ b/Week3/homework/js-exercises/PROJECT/creditCard.js @@ -0,0 +1,79 @@ +const creditCardValue = document.querySelector(".creditCardText"); +const validador = document.querySelector(".validador"); +const Resultado = document.querySelector(".accessResult"); +const imagen = document.querySelector(".centerSide img"); + +// Checks everytime someone clicks the button +validador.addEventListener("click", function() { + let error = true; + + if(creditCardValue.value.length === 0) + Resultado.innerText = "The field is empty!"; + else if(creditCardValue.value.length < 16) + Resultado.innerText = "The credit card must contain 16 digit"; + else if(creditCardValue.value.charAt(15) % 2 !== 0) + Resultado.innerText = "The last digit of the credit card must be even"; + else if(greaterThanSixteen(creditCardValue.value) === false) + Resultado.innerText = "The sum of the digits must be over 16"; + else if(atLeastTwoValues(creditCardValue.value) === false) + Resultado.innerText = "The credit card must contain at least two different digits"; + else if(isNaN(creditCardValue.value)) + Resultado.innerText = "The credit card must contain number digits only"; + else { + Resultado.innerText = "Credit Card succesfully validated!"; + error = false; + } + + if(error === true) + imagen.src = "images/xxxxx.png"; + else + imagen.src = "images/tick.png"; +}); + +// Checks everytime someone type a value in the textfield +creditCardValue.addEventListener("input", function() { + + creditCardValue.value = creditCardValue.value.trim(); // Eliminate spaces + if(creditCardValue.value.length > 16){ + creditCardValue.value = creditCardValue.value.slice(0, 16); // don't allow the user to type more than 16 numbers + } + + if(isNaN(creditCardValue.value)) + Resultado.innerText = "Warning! There is a character that is not a number!"; + else + Resultado.innerText = ""; +}); + +function atLeastTwoValues(number){ + let firstValue; + if(number.length > 1) //There must be at least two numbers to compare + firstValue = number.charAt(0); + else + return false; + + for(let i=1; i < number.length; i++){ + if(firstValue !== number.charAt(i)) + return true; + } + return false; +} + +function greaterThanSixteen(number){ + let sum = 0; + for(let i=0; i6qx~m^k;c?B)Dle|BmB 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 A2><{9 literal 0 HcmV?d00001 diff --git a/Week3/homework/js-exercises/PROJECT/images/tick.png b/Week3/homework/js-exercises/PROJECT/images/tick.png new file mode 100644 index 0000000000000000000000000000000000000000..ef3928b926d106e3273fe4698fbf29eb9596ed40 GIT binary patch literal 15513 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�pLO29}3}w?j8c9UfZ&c5WL0j|0 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 literal 0 HcmV?d00001 diff --git a/Week3/homework/js-exercises/PROJECT/images/xxxxx.png b/Week3/homework/js-exercises/PROJECT/images/xxxxx.png new file mode 100644 index 0000000000000000000000000000000000000000..d37980cd2bc1ba9772a83b5ebd6bdb113c49a0b9 GIT binary patch literal 17649 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 sNFyzzDiUdgM4nu^^FJp;npo