From ce4607b20a3d4ee165032a3cc6e1805f4c205f01 Mon Sep 17 00:00:00 2001 From: Luke Nemy Date: Mon, 1 May 2017 17:58:15 -0700 Subject: [PATCH 1/3] Day 1 specs and exercises --- bike-shop/src/stage1-literals.js | 21 ++++++++++++++++++++- jsinfo/Create_calculator | 20 ++++++++++++++++++++ jsinfo/Hello_Object | 8 ++++++++ jsinfo/Ladder | 17 +++++++++++++++++ jsinfo/Multipy_numeric_properties | 26 ++++++++++++++++++++++++++ 5 files changed, 91 insertions(+), 1 deletion(-) create mode 100644 jsinfo/Create_calculator create mode 100644 jsinfo/Hello_Object create mode 100644 jsinfo/Ladder create mode 100644 jsinfo/Multipy_numeric_properties diff --git a/bike-shop/src/stage1-literals.js b/bike-shop/src/stage1-literals.js index c749dd2..950d76b 100644 --- a/bike-shop/src/stage1-literals.js +++ b/bike-shop/src/stage1-literals.js @@ -1,5 +1,24 @@ const myBike = { - // your code here + name: "Roadster", + price: 199.99, + frame: new frame() { + height: 55, + color: 'blue', + stlye: 'cruiser' + } + brakes: new brakes() { + front: false, + back: true + } + tires: new tires() { + diameter: 22, + type: 'fat' + } + rings: new rings() { + front: 2, + back: 5 + } } + module.exports = myBike diff --git a/jsinfo/Create_calculator b/jsinfo/Create_calculator new file mode 100644 index 0000000..ae1ae47 --- /dev/null +++ b/jsinfo/Create_calculator @@ -0,0 +1,20 @@ +//Create Calculator + +let calculator = { + + read() { + this.num1 = +prompt('num1?'); + this.num2 = +prompt('num2?'); + }, + sum() { + return this.num1 + this.num2; + }, + + mul() { + return this.num1 * this.num2; + }, +}; + +calculator.read(); +alert( calculator.sum() ); +alert( calculator.mul() ); diff --git a/jsinfo/Hello_Object b/jsinfo/Hello_Object new file mode 100644 index 0000000..4e53226 --- /dev/null +++ b/jsinfo/Hello_Object @@ -0,0 +1,8 @@ +//Hello Object + +let user = {} +user.name: 'John'; +user.surname: 'Smith'; +user.name = 'Pete'; + +delete user.name diff --git a/jsinfo/Ladder b/jsinfo/Ladder new file mode 100644 index 0000000..a7be386 --- /dev/null +++ b/jsinfo/Ladder @@ -0,0 +1,17 @@ +//Ladder + +let ladder = { + step: 0, + up() { + this.step++; + return this; + }, + down() { + this.step--; + return this; + }, + showStep: function() { // shows the current step + alert( this.step ); + return this; + } +}; diff --git a/jsinfo/Multipy_numeric_properties b/jsinfo/Multipy_numeric_properties new file mode 100644 index 0000000..380196f --- /dev/null +++ b/jsinfo/Multipy_numeric_properties @@ -0,0 +1,26 @@ +//Multipy Numeric Properties by 2 + +// before the call +let menu = { + width: 200, + height: 300, + title: "My menu" +}; + +multiplyNumeric(menu); + + function multiplyNumeric() { + for ( let key in obj ) { + if (typeof obj[key] == 'number') { + obj[key] *= 2; + } + } + } + + +// after the call +menu = { + width: 400, + height: 600, + title: "My menu" +}; From c8cce5eabd1ad1fe24e85df04ffdf53247c29c23 Mon Sep 17 00:00:00 2001 From: Luke Nemy Date: Tue, 2 May 2017 14:47:59 -0700 Subject: [PATCH 2/3] Updated filetypes --- jsinfo/{Create_calculator => Create_calculator.js} | 0 jsinfo/{Hello_Object => Hello_Object.js} | 0 jsinfo/{Ladder => Ladder.js} | 0 .../{Multipy_numeric_properties => Multipy_numeric_properties.js} | 0 4 files changed, 0 insertions(+), 0 deletions(-) rename jsinfo/{Create_calculator => Create_calculator.js} (100%) rename jsinfo/{Hello_Object => Hello_Object.js} (100%) rename jsinfo/{Ladder => Ladder.js} (100%) rename jsinfo/{Multipy_numeric_properties => Multipy_numeric_properties.js} (100%) diff --git a/jsinfo/Create_calculator b/jsinfo/Create_calculator.js similarity index 100% rename from jsinfo/Create_calculator rename to jsinfo/Create_calculator.js diff --git a/jsinfo/Hello_Object b/jsinfo/Hello_Object.js similarity index 100% rename from jsinfo/Hello_Object rename to jsinfo/Hello_Object.js diff --git a/jsinfo/Ladder b/jsinfo/Ladder.js similarity index 100% rename from jsinfo/Ladder rename to jsinfo/Ladder.js diff --git a/jsinfo/Multipy_numeric_properties b/jsinfo/Multipy_numeric_properties.js similarity index 100% rename from jsinfo/Multipy_numeric_properties rename to jsinfo/Multipy_numeric_properties.js From 29ed24d44d970aa68c849e4681513495d858ba7b Mon Sep 17 00:00:00 2001 From: Luke Nemy Date: Tue, 2 May 2017 18:34:52 -0700 Subject: [PATCH 3/3] Day 2 exercises and progression on stage2 of Bike Shop --- bike-shop/src/stage2-constructors.js | 27 +++++++++++++++++++++------ jsinfo/Extendable_Calculator.js | 27 +++++++++++++++++++++++++++ jsinfo/New_Accumulator.js | 16 ++++++++++++++++ jsinfo/New_Calculator.js | 23 +++++++++++++++++++++++ 4 files changed, 87 insertions(+), 6 deletions(-) create mode 100644 jsinfo/Extendable_Calculator.js create mode 100644 jsinfo/New_Accumulator.js create mode 100644 jsinfo/New_Calculator.js diff --git a/bike-shop/src/stage2-constructors.js b/bike-shop/src/stage2-constructors.js index c422386..9ca47b6 100644 --- a/bike-shop/src/stage2-constructors.js +++ b/bike-shop/src/stage2-constructors.js @@ -1,15 +1,30 @@ -function Bike() { - // your code here -} -function Frame() { - // your code here +function Frame(color, size, style) { + this.color = 'black'; + this.size = 55; + this.style = 'street'; } +let myFrame = new Frame(); + +function myFrame() { + this.color = 'blue', + this.size = 60, + this.style = 'mountain' +}; + +// myFrame.color = 'blue'; +// myFrame.size = 60; +// myFrame.style = 'mountain'; + function Tire() { - // your code here } +function Bike() { + +} + + module.exports = { Bike: Bike, Frame: Frame, diff --git a/jsinfo/Extendable_Calculator.js b/jsinfo/Extendable_Calculator.js new file mode 100644 index 0000000..3d3114f --- /dev/null +++ b/jsinfo/Extendable_Calculator.js @@ -0,0 +1,27 @@ +// Extendable Calculator + +function Calculator() { + + let methods = { + "-": (a, b) => a - b, + "+": (a, b) => a + b + }; + + this.calculate = function(str) { + + let split = str.split(' '), + a = +split[0], + op = split[1], + b = +split[2] + + if (!methods[op] || isNaN(a) || isNaN(b)) { + return NaN; + } + + return methods[op](a, b); + } + + this.addMethod = function(name, func) { + methods[name] = func; + }; +} diff --git a/jsinfo/New_Accumulator.js b/jsinfo/New_Accumulator.js new file mode 100644 index 0000000..da7a4c4 --- /dev/null +++ b/jsinfo/New_Accumulator.js @@ -0,0 +1,16 @@ +//New Accumulator + +function Accumulator(startingValue) { + this.value = startingValue; + + this.read = function() { + this.value += +prompt('How much to add?', 0); + }; +} + + +let accumulator = new Accumulator(1); +accumulator.read(); +accumulator.read(); + +alert(accumulator.value) diff --git a/jsinfo/New_Calculator.js b/jsinfo/New_Calculator.js new file mode 100644 index 0000000..612ecb7 --- /dev/null +++ b/jsinfo/New_Calculator.js @@ -0,0 +1,23 @@ +//New Calculator + +function Calculator() { + + this.read = function() { + this.a = +prompt('a?', 0); + this.b = +prompt('b?', 0); + }; + + this.sum = function() { + return this.a + this.b; + }; + + this.mul = function() { + return this.a * this.b; + }; +} + +let calculator = new Calculator(); +calculator.read(); + +alert( "Sum=" + calculator.sum() ); +alert( "Mul=" + calculator.mul() );