From 5d28b53b3b994bd71361450c32ea60283202a372 Mon Sep 17 00:00:00 2001 From: maflooty Date: Wed, 9 Oct 2019 20:06:55 +0200 Subject: [PATCH 1/3] Homework Done --- module-exercises/index.html | 4 ++-- module-exercises/variables.js | 29 +++++++++++++++++++++++++---- week-1-project/devowel-handler.js | 9 ++++++++- week-1-project/index.html | 9 +++++---- week-1-project/repeat-handler.js | 11 +++++++++-- week-1-project/reverse-handler.js | 8 +++++++- week-1-project/sort-handler.js | 9 +++++++-- week-1-project/style.css | 8 ++++++++ 8 files changed, 71 insertions(+), 16 deletions(-) diff --git a/module-exercises/index.html b/module-exercises/index.html index 2ef651b..be96ec8 100644 --- a/module-exercises/index.html +++ b/module-exercises/index.html @@ -22,7 +22,7 @@ - + challenge exercises diff --git a/module-exercises/variables.js b/module-exercises/variables.js index 0ed91de..6c5ad6e 100644 --- a/module-exercises/variables.js +++ b/module-exercises/variables.js @@ -82,6 +82,12 @@ function threeVariableSwap1() { let temp = ''; // can be done in 4 lines + temp = a; + a = b; + b = c; + c = temp; + + console.assert(a === "a", "a should store 'a'"); @@ -96,7 +102,10 @@ function threeVariableSwap2() { let temp = ''; // can be done in 4 lines - + temp=a; + a=c; + c=b; + b=temp; console.assert(a === "a", "a should store 'a'"); console.assert(b === "b", "b should store 'b'"); @@ -111,7 +120,11 @@ function fourVariableSwap1() { // can be done in 5 lines - + temp = a; + a = b; + b = c; + c = d; + d = temp; console.assert(a === "a", "a should store 'a'"); console.assert(b === "b", "b should store 'b'"); console.assert(c === "c", "c should store 'c'"); @@ -125,7 +138,11 @@ function fourVariableSwap2() { let temp = ''; // can be done in 6 lines - + temp = b; + a = d; + b = c; + c = temp; + d = 'z'; console.assert(a === "w", "a should store 'w'"); console.assert(b === "x", "b should store 'x'"); @@ -140,7 +157,11 @@ function fiveVariableSwap() { let temp = ' '; // can be done in 6 lines - + temp = b; + a = d; + b = c; + c = temp; + d = a; console.assert(a === "v", "a should store 'v'"); console.assert(b === "w", "b should store 'w'"); diff --git a/week-1-project/devowel-handler.js b/week-1-project/devowel-handler.js index c50d2d2..228835e 100644 --- a/week-1-project/devowel-handler.js +++ b/week-1-project/devowel-handler.js @@ -17,7 +17,14 @@ function devowelHandler() { const toDevowel = document.getElementById('devowel-input').value; // pass user input through core logic (write this! it doesn't work) - const devoweled = `remove all vowels from ${toDevowel}`; + + function disVowel(toDevowel){ + let vowels = ['a','e','o','i','u']; + return toDevowel.split('').filter(function(el) { + return vowels.indexOf(el.toLowerCase()) == -1; + }).join(); + } + const devoweled = disVowel(toDevowel); // report result to user (this works, no need to change it!) const outputField = document.getElementById('devowel-output'); diff --git a/week-1-project/index.html b/week-1-project/index.html index 9397ef9..a13925b 100644 --- a/week-1-project/index.html +++ b/week-1-project/index.html @@ -4,16 +4,17 @@ - + week 1 project - + - - +

Mustapha/Week1/JS/Homework

+

How to use this website

+

You should write a string in the placeholder you want and click on the button below it



diff --git a/week-1-project/repeat-handler.js b/week-1-project/repeat-handler.js index d0c5d72..56d3b4c 100644 --- a/week-1-project/repeat-handler.js +++ b/week-1-project/repeat-handler.js @@ -25,8 +25,15 @@ function repeatHandler() { // pass user input through core logic (write this! it doesn't work) - const repeated = `repeat ${strToRepeat} ${numOfRepetitions} times`; - + function strToRepeat1(string, times) { + if(times < 0) + return ""; + if(times === 1) + return string; + else + return string + strToRepeat1(string, times - 1); + } + const repeated = strToRepeat.repeat(20) ; // report result to user (this works, no need to change it!) const outputField = document.getElementById('repeat-output'); outputField.innerHTML = repeated; diff --git a/week-1-project/reverse-handler.js b/week-1-project/reverse-handler.js index 6682c5f..a082c45 100644 --- a/week-1-project/reverse-handler.js +++ b/week-1-project/reverse-handler.js @@ -18,7 +18,13 @@ function reverseHandler() { const toReverse = document.getElementById('reverse-input').value; // pass user input through core logic (write this! it doesn't work) - const reversed = `reverse ${toReverse}`; + + function stringToReverse(toReverse){ + return toReverse.split('').reverse().join(''); + + }; + const reversed = stringToReverse(toReverse) ; + // report result to user (this works, no need to change it!) const outputField = document.getElementById('reverse-output'); diff --git a/week-1-project/sort-handler.js b/week-1-project/sort-handler.js index e45575f..14db537 100644 --- a/week-1-project/sort-handler.js +++ b/week-1-project/sort-handler.js @@ -13,12 +13,17 @@ the handler is already set up to: function sortHandler() { - + const toSort1 = ['Lemon','Banana','Apples','Grapes']; // read and process user input (this works, no need to change it!) const toSort = document.getElementById('sort-input').value; // pass user input through core logic (write this! it doesn't work) - const sorted = `sort the charecters in ${toSort}`; + function sortString(toSort){ + let toSort1 = toSort.split(''); + let sorted = toSort1.sort(); + return sorted.join(''); + } + const sorted = sortString(toSort); // report result to user (this works, no need to change it!) const outputField = document.getElementById('sort-output'); diff --git a/week-1-project/style.css b/week-1-project/style.css index e69de29..f8a7387 100644 --- a/week-1-project/style.css +++ b/week-1-project/style.css @@ -0,0 +1,8 @@ +body { + font-family: Arial, Helvetica, sans-serif; + font-size: 16px; + background: aqua; + text-align: center; + +} + From 38fda59f18a8cbef7db315fb104029d32b7c636a Mon Sep 17 00:00:00 2001 From: Mustapha <53609690+maflooty@users.noreply.github.com> Date: Thu, 10 Oct 2019 08:19:36 +0200 Subject: [PATCH 2/3] Delete variables.js --- module-exercises/variables.js | 344 ---------------------------------- 1 file changed, 344 deletions(-) delete mode 100644 module-exercises/variables.js diff --git a/module-exercises/variables.js b/module-exercises/variables.js deleted file mode 100644 index 6c5ad6e..0000000 --- a/module-exercises/variables.js +++ /dev/null @@ -1,344 +0,0 @@ -// https://www.youtube.com/watch?v=pHt_tKYUgbo&list=PLzV58Zm8FuBJFfQN5il3ujx6FDAY8Ds3u&index=2 -// https://github.com/janke-learning/variables-and-hoisting -// https://github.com/janke-learning/variable-exercises - -{ - const pageTitle = 'variables'; - const header = document.createElement("h2"); - header.innerHTML = pageTitle; - document.body.appendChild(header); - console.groupCollapsed(pageTitle); -} - - -// this example covers only let & const -function example_declarationAndAssignment() { - - // declaring a new "let" variable opens a new labeled slot in memory - // if no value is assigned, the default value is 'undefined' - let declaredLetWithoutAssignment; - - // setting or resetting the value stored in the slot is "assignment" - declaredLetWithoutAssignment = 'assigned after declaration'; - - // accessing a const/let variable before it is declared will error - declaredLetWithAssignment; // comment this line to remove the error! - - // you will generally do both declaration and assignment at once - // notice how this slot is only created when this line is reached? - let declaredLetWithAssignment = 'assigned at declaration'; - - // variables declared with 'let' can have their values reassigned later on - declaredLetWithoutAssignment = 'new value'; - declaredLetWithAssignment = 'another new value'; - - - // const variables cannot be declared without an assignment - const constantVariable = 'forever!'; - // const errorTime; // uncomment this line to throw error! - - // const variables cannot be reassigned later in the program - constantVariable = 'error time'; - -} -evaluate(example_declarationAndAssignment); - - -function example_twoVariableSwap() { - - // swapping the values stored in two variables is a key skill - // once you get it, it's quite simple - // if you don't get it, programming will be very confusing - // so take some time now to understand how variables work - // how they store values in memory - // that the "=" sign does not work like in math - // what happens when one variable is assigned to another - // that variable assignments go from right to left - // that program memory changes over time - // what is written in source code will not be true forever - - let a = 'b', b = 'a'; - let temp = ''; - - temp = a; - a = b; - b = temp; - - console.assert(a === 'a', 'a should store "a"'); - console.assert(b === 'b', 'b should store "b"'); - -} -evaluate(example_twoVariableSwap); - - -/* variable exercises - - the remainder of these exercises are all variations of the swap above -*/ - -function threeVariableSwap1() { - - let a = "c", b = "a", c = "b"; - let temp = ''; - - // can be done in 4 lines - temp = a; - a = b; - b = c; - c = temp; - - - - - console.assert(a === "a", "a should store 'a'"); - console.assert(b === "b", "b should store 'b'"); - console.assert(c === "c", "c should store 'c'"); -} -evaluate(threeVariableSwap1); - -function threeVariableSwap2() { - - let a = "b", b = "c", c = "a"; - let temp = ''; - - // can be done in 4 lines - temp=a; - a=c; - c=b; - b=temp; - - console.assert(a === "a", "a should store 'a'"); - console.assert(b === "b", "b should store 'b'"); - console.assert(c === "c", "c should store 'c'"); -} -evaluate(threeVariableSwap2); - -function fourVariableSwap1() { - - let a = "d", b = "a", c = "b", d = "c"; - let temp = ''; - - // can be done in 5 lines - - temp = a; - a = b; - b = c; - c = d; - d = temp; - console.assert(a === "a", "a should store 'a'"); - console.assert(b === "b", "b should store 'b'"); - console.assert(c === "c", "c should store 'c'"); - console.assert(d === "d", "d should store 'd'"); -} -evaluate(fourVariableSwap1); - -function fourVariableSwap2() { - - let a = "z", b = "y", c = "x", d = "w"; - let temp = ''; - - // can be done in 6 lines - temp = b; - a = d; - b = c; - c = temp; - d = 'z'; - - console.assert(a === "w", "a should store 'w'"); - console.assert(b === "x", "b should store 'x'"); - console.assert(c === "y", "c should store 'y'"); - console.assert(d === "z", "d should store 'z'"); -} -evaluate(fourVariableSwap2); - -function fiveVariableSwap() { - - let a = "z", b = "y", c = "x", d = "w", e = "v"; - let temp = ' '; - - // can be done in 6 lines - temp = b; - a = d; - b = c; - c = temp; - d = a; - - console.assert(a === "v", "a should store 'v'"); - console.assert(b === "w", "b should store 'w'"); - console.assert(c === "x", "c should store 'x'"); - console.assert(d === "y", "d should store 'y'"); - console.assert(e === "z", "e should store 'z'"); -} -evaluate(fiveVariableSwap); - - -function example1_multipleAssignments() { - - // it is possible to assign multiple variables on one line - // these assignments are executed from left to right - - let a = 'b', b = 'a', temp = ''; - - temp = a, a = b, b = temp; - - console.assert(a === 'a', 'a should store "a"'); - console.assert(b === 'b', 'b should store "b"'); -} -evaluate(example1_multipleAssignments); - - - -function example2_multipleAssignments() { - - // using multiple assignments is largely a style choice - // if you find it easier to read and understand, go for it! - - let a = 'c', b = 'a', c = 'b', temp = ''; - - temp = a, a = b, b = c, c = temp; - - console.assert(a === 'a', 'a should store "a"'); - console.assert(b === 'b', 'b should store "b"'); - console.assert(c === 'c', 'c should store "c"'); -} -evaluate(example2_multipleAssignments); - - -function multipleAssignments1() { - - let a = "c", b = "a", c = "b"; - let temp = ''; - - // can be done in 1 line - - - console.assert(a === "a", "a should store 'a'"); - console.assert(b === "b", "b should store 'b'"); - console.assert(c === "c", "c should store 'c'"); -} -evaluate(multipleAssignments1); - -function multipleAssignments2() { - - let a = "b", b = "c", c = "a"; - let temp = ''; - - // can be done in 1 line - - - console.assert(a === "a", "a should store 'a'"); - console.assert(b === "b", "b should store 'b'"); - console.assert(c === "c", "c should store 'c'"); -} -evaluate(multipleAssignments2); - -function multipleAssignments3() { - - let a = "d", b = "a", c = "b", d = "c"; - let temp = ''; - - // can be done in 1 line - - - console.assert(a === "a", "a should store 'a'"); - console.assert(b === "b", "b should store 'b'"); - console.assert(c === "c", "c should store 'c'"); - console.assert(d === "d", "d should store 'd'"); -} -evaluate(multipleAssignments3); - -function multipleAssignments4() { - - let a = "z", b = "y", c = "x", d = "w"; - let temp = ''; - - // can be done in 1 line - - - console.assert(a === "w", "a should store 'w'"); - console.assert(b === "x", "b should store 'x'"); - console.assert(c === "y", "c should store 'y'"); - console.assert(d === "z", "d should store 'z'"); -} -evaluate(multipleAssignments4); - - - -function example_chainedAssignments() { - - // you can assign the same value to multiple variables at once - // chained assignments are read right to left - // using chained or single assignments depends on what you understand better - - let a = 'b', b1 = b2 = 'a'; - let temp = ''; - - temp = a; - a = b1; - b1 = b2 = temp; - - console.assert(a === "a", 'a should store "a"'); - console.assert(b1 === "b", 'b1 should store "b"'); - console.assert(b1 === b2, 'b1 should store the same value as b2'); -} -evaluate(example_chainedAssignments); - - -function chainedAssignments1() { - - let a1 = a2 = 'b', b = 'a'; - let temp = ''; - - // can be done in 3 lines or less - - console.assert(a1 === "a", 'a1 should store "a"'); - console.assert(a1 === a2, 'a1 should store the same value as a2'); - console.assert(b === "b", 'b should store "b"'); -} -evaluate(chainedAssignments1); - - - -function chainedAssignments2() { - let a = 'c'; - let b1 = b2 = 'a'; - let c1 = c2 = c3 = 'b'; - let temp = ''; - - // can be done in 4 lines or less - - - - console.assert(a === "a", 'a should store "a"'); - console.assert(b1 === "b", 'b1 should store "b"'); - console.assert(b1 === b2, 'b1 should store the same as b2'); - console.assert(c1 === "c", 'c1 should store "c"'); - console.assert(c1 === c2, 'c1 should store the same as c2'); - console.assert(c2 === c3, 'c2 should store the same as c3'); -} -evaluate(chainedAssignments2); - - -function footnote_var() { - - // in JS you can also declare variables using 'var' - // 'var' is like 'let' in that variables can be reassigned - // 'var' variables are different in two main ways - // this type of variable is "hoisted" - // they have no block scope, only lexical - // don't worry about "var" or these differences for now - // just know that this exists since you will find it online - // always use 'let' and 'const' in your programs to avoid "var" bugs - - var varVariable = 'the slot is created before the declaration is reached (hoisting)'; - - varVariable = 'reassignment is possible'; - -} -evaluate(footnote_var); - - -{ - console.groupEnd(); - document.body.appendChild(document.createElement('hr')); -} From 316465fe5893a35f5e9f11289f2ca32dbc2361ce Mon Sep 17 00:00:00 2001 From: Mustapha <53609690+maflooty@users.noreply.github.com> Date: Thu, 10 Oct 2019 11:15:09 +0200 Subject: [PATCH 3/3] Delete index.html --- module-exercises/index.html | 45 ------------------------------------- 1 file changed, 45 deletions(-) delete mode 100644 module-exercises/index.html diff --git a/module-exercises/index.html b/module-exercises/index.html deleted file mode 100644 index be96ec8..0000000 --- a/module-exercises/index.html +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - understand javascript - - - - - - - - how to work with these exercises - - - - - - - - - challenge exercises - - - -