This commit is contained in:
Arti Zirk 2017-04-06 13:28:05 +03:00
parent cdd07ba12f
commit f052e1ef25
7 changed files with 128 additions and 6 deletions

16
ex1.js
View File

@ -2,4 +2,18 @@
var array = [1, 2, 3, 4, 5, 6]; 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);

5
ex2.js
View File

@ -1,6 +1,9 @@
'use strict'; 'use strict';
var array = [1, 2, 3, 4, 5, 6]; 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);

5
ex3.js
View File

@ -9,5 +9,8 @@ var array = [
{ id: 6, selected: false } { 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);

14
ex4.js
View File

@ -1,2 +1,16 @@
'use strict'; '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());

2
ex5.js
View File

@ -14,3 +14,5 @@ function factorial(n, callback) {
callback(result); callback(result);
} }
factorial(4, res => console.log(`Result: ${res}`))

28
ex6.js
View File

@ -2,10 +2,34 @@
var request = require("request"); var request = require("request");
get('/api/persons/2948', function(data) { function getRelevantData(personId, cb) {
console.log(data);
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)

62
readme.txt Normal file
View File

@ -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/<code>
Ütleb, kas sellise koodiga inimene on kindlustatud.
/api/tax-debt/<code>
Ütleb, kas sellise koodiga inimensel on maksuvõlg.
Kasutage neid teenuseid andmete saamiseks ja printige konsooli isiku andmed kujul:
{
name : <nimi>,
isInsured: <kas on kindlustatud>,
taxDebt: <maksuvõla suurus>
}
Teenuste poole pöördumiseks:
get('/api/persons/2948', callbackFunktsioon);
Lahendused: https://youtu.be/a4YzPo8hi9o