From f052e1ef255ae8d45f131f520d4ba92dee62ca5a Mon Sep 17 00:00:00 2001 From: Arti Zirk Date: Thu, 6 Apr 2017 13:28:05 +0300 Subject: [PATCH] First --- ex1.js | 16 +++++++++++++- ex2.js | 5 ++++- ex3.js | 5 ++++- ex4.js | 14 ++++++++++++ ex5.js | 2 ++ ex6.js | 30 +++++++++++++++++++++++--- readme.txt | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 128 insertions(+), 6 deletions(-) create mode 100644 readme.txt diff --git a/ex1.js b/ex1.js index 35672d0..edba2eb 100644 --- a/ex1.js +++ b/ex1.js @@ -2,4 +2,18 @@ var array = [1, 2, 3, 4, 5, 6]; -console.log('Even numbers: ' + array); +function filter(numbers, filterfunc) { + let filtered = []; + + for (let n of numbers) { + if (filterfunc(n)) { + filtered.push(n); + } + } + + return filtered; +} + +var filtered = filter(array, numb => numb % 2 === 0); + +console.log('Even numbers: ' + filtered); diff --git a/ex2.js b/ex2.js index 1e0cd63..79b633b 100644 --- a/ex2.js +++ b/ex2.js @@ -1,6 +1,9 @@ 'use strict'; var array = [1, 2, 3, 4, 5, 6]; +array.push(7, 8) -console.log('Even numbers squared: ' + array); +var evenSquared = array.filter(n => n % 2 == 0).map(n => n*n); + +console.log('Even numbers squared: ' + evenSquared); diff --git a/ex3.js b/ex3.js index e4410d1..b9fe861 100644 --- a/ex3.js +++ b/ex3.js @@ -9,5 +9,8 @@ var array = [ { id: 6, selected: false } ]; -console.log('Ids of selected objects: ' + array); +var filtered = array.filter(el => el.selected ? el : null) + .map(el => el.id); + +console.log('Ids of selected objects: ' + filtered); diff --git a/ex4.js b/ex4.js index eb109ab..54eed82 100644 --- a/ex4.js +++ b/ex4.js @@ -1,2 +1,16 @@ 'use strict'; +function Person(name) { + if (!name) { + throw new Error("Name not set"); + } + this.name = name; + //this.getName = () => `this.getName: ${this.name}`; + +} +Person.prototype.getName = function (){ return `proto.getName ${this.name}`; } + +var person = new Person("Kala"); +console.log(Object.keys(person)); +console.log(Object.keys(person.__proto__)); +console.log(person.getName()); diff --git a/ex5.js b/ex5.js index b2084d4..3bd8520 100644 --- a/ex5.js +++ b/ex5.js @@ -14,3 +14,5 @@ function factorial(n, callback) { callback(result); } + +factorial(4, res => console.log(`Result: ${res}`)) diff --git a/ex6.js b/ex6.js index bf9c8ea..9bb4f8c 100644 --- a/ex6.js +++ b/ex6.js @@ -2,9 +2,33 @@ var request = require("request"); -get('/api/persons/2948', function(data) { - console.log(data); -}); +function getRelevantData(personId, cb) { + + get('/api/persons/'+personId, recv => { + let result = {name: recv.name} + let waitingResponses = 2; + + function recvCb(data, type){ + if (type === "insurance") { + result.isInsured = data.isInsured; + waitingResponses--; + } else if (type === "debt") { + result.taxDebt = data.debt; + waitingResponses--; + } + + if (!waitingResponses) { + cb(result); + } + } + + get('/api/health-insurance/'+recv.code, recv => recvCb(recv, "insurance")); + get('/api/tax-debt/'+recv.code, recv => recvCb(recv, "debt")); + }); + +} + +getRelevantData(2948,console.log) diff --git a/readme.txt b/readme.txt new file mode 100644 index 0000000..fdf47e4 --- /dev/null +++ b/readme.txt @@ -0,0 +1,62 @@ +Kloonige https://bitbucket.org/mkalmo/i399exlang repo ja importige see IDE-sse. + +1. Kirjutage funktsioon filter(array, predicateFunction), mis tagastab listi + elementidest, mis vastavad predicateFunction-iga määratud tingimusele. + kasutamise näide: + var oddNumbers = filter([1, 2, 3], function (each) { + return each % 2 === 1; + }); + + Käivitamiseks: node ex1.js + +2. Kirjutage kood, mis: + - loob listi arvudega 1, 2, 3, 4, 5, 6 + - lisab sinna arvud 7 ja 8 + - filtreerib välja paarisarvud + - võtab need paarisarvud ruutu + - väljastab tulemuse konsooli + + kasutage array meetodeid .filter() ja .map() + +3. Kirjutage kood, mis väljastab nende elementide id-d, + millel on "selected" tunnus tõene. + +4. Tehke objekt person, millel on väli name ja meetod getName(), mis tagastab nime. + Konstruktorile saab argumendiga nime ette anda. + + var person = new Person("Jack"); + console.log(person.getName()); // Jack + + Proovige panna meetodit nii objekti, kui prototüübi külge. + Veenduge, et meetod on õiges kohas (vihjed: Object.keys() ja __proto__). + +5. Teil on kasutada funktsioon factorial(n, callback). + Arvutage selle abil 5! ja printige see konsooli. + Funktsiooni factorial ennast muuta ei tohi. + +6. Minge käsureal omale kloonitud repo kataloogi ja käivitage käsud: + > npm install + See laeb vajalikud teegid. + > npm start + See käivitab rakenduse, mis pakub aadressilt http://localhost:3000 järgmisi teenuseid: + + /api/persons/2948 + Tagastab ID järgi isiku andmed (sh koodi). + + /api/health-insurance/ + Ütleb, kas sellise koodiga inimene on kindlustatud. + + /api/tax-debt/ + Ütleb, kas sellise koodiga inimensel on maksuvõlg. + + Kasutage neid teenuseid andmete saamiseks ja printige konsooli isiku andmed kujul: + { + name : , + isInsured: , + taxDebt: + } + + Teenuste poole pöördumiseks: + get('/api/persons/2948', callbackFunktsioon); + +Lahendused: https://youtu.be/a4YzPo8hi9o