From ca6f557b78a9145bfdb835d9c2b85dc3265c1bdf Mon Sep 17 00:00:00 2001 From: Natalia Date: Wed, 11 Jul 2018 19:20:28 +0300 Subject: [PATCH 1/2] homework_13 --- js-core/homeworks/homework-13/index.html | 11 +++++ js-core/homeworks/homework-13/src/main.js | 55 +++++++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 js-core/homeworks/homework-13/index.html create mode 100644 js-core/homeworks/homework-13/src/main.js diff --git a/js-core/homeworks/homework-13/index.html b/js-core/homeworks/homework-13/index.html new file mode 100644 index 0000000..d45e88a --- /dev/null +++ b/js-core/homeworks/homework-13/index.html @@ -0,0 +1,11 @@ + + + + + Home work 13 + + + + + + diff --git a/js-core/homeworks/homework-13/src/main.js b/js-core/homeworks/homework-13/src/main.js new file mode 100644 index 0000000..1aea797 --- /dev/null +++ b/js-core/homeworks/homework-13/src/main.js @@ -0,0 +1,55 @@ +//Task1 (hw12 ---> task1) +class Http { + constructor() { + this.ctx = { + req: { + PORT: 'number', + url: 'string' + }, + res: { + status: 'number', + message: 'string', + header: { + content_type: 'application/json' + } + } + }, + this.next = () => {} + }; + + createServer(fn) { + this.createServerCallback = fn; + return this; + }; + listen(PORT, host) { + console.log(`Server running on https://${host}:${PORT}`); + this.createServerCallback(this.ctx, this.next); + }; +}; + +const server = new Http().createServer(function(ctx, next) { + console.log(ctx); +}).listen(3000, 'localhost'); + + +//Task2 + +class DataBase { + constructor() { + this.idSetTimeout; + }; + + time() { + clearTimeout(this.idSetTimeout); + this.idSetTimeout = setTimeout(function(){ + console.log('The web server is down'); + }, 5000); + }; + + query() { + this.time(); + }; +}; + +const dataBase = new DataBase(); +dataBase.query(); \ No newline at end of file From 512a896a35685a38420b894b6b01bfe48481b28a Mon Sep 17 00:00:00 2001 From: Natalia Date: Thu, 12 Jul 2018 17:58:00 +0300 Subject: [PATCH 2/2] phonebook --- js-core/homeworks/phonebook/index.html | 10 +++ js-core/homeworks/phonebook/index.js | 106 +++++++++++++++++++++++++ 2 files changed, 116 insertions(+) create mode 100644 js-core/homeworks/phonebook/index.html create mode 100644 js-core/homeworks/phonebook/index.js diff --git a/js-core/homeworks/phonebook/index.html b/js-core/homeworks/phonebook/index.html new file mode 100644 index 0000000..a0140c8 --- /dev/null +++ b/js-core/homeworks/phonebook/index.html @@ -0,0 +1,10 @@ + + + + phonebook + + + + + + \ No newline at end of file diff --git a/js-core/homeworks/phonebook/index.js b/js-core/homeworks/phonebook/index.js new file mode 100644 index 0000000..8116467 --- /dev/null +++ b/js-core/homeworks/phonebook/index.js @@ -0,0 +1,106 @@ +class PhoneApp { + constructor() { + this.dataBase = [ + {id:1, name:'Vasya', phone:'qweqwe'}, + {id:6, name:'Vasya', phone:'qweqwe'}, + {id:3, name:'Vasya', phone:'qweqwe'}, + {id:8, name:'Vasya', phone:'qweqwe'}, + {id: 10, name: 'Tom2', phone: '0995385'}, + {id: 10, name: 'Anita', phone: '0995305385'}, + {id: 12, name: 'Anita', phone: '9995305385'} + ] + }; + + checkForNumbers(phone) { + let arrPhone = phone.split(''); + let numberArrPhone = arrPhone.map((elem) => { + return parseInt(elem); + }); + let validNumber = numberArrPhone.some((elem) => { + return isNaN(elem) + }); + if(validNumber) { + // console.error('Телефонный номер должен содержать только цифры'); + return false; + } else { + //console.log('Телефонный номер вылидный'); + return true; + }; + }; + + transformNumber(phone) { + if(this.checkForNumbers(phone)){ + let arrPhone = phone.split(''); + arrPhone.splice(0, 0, '('); + arrPhone.splice(4, 0, ')', ' '); + arrPhone.splice(8, 0, '-'); + arrPhone.splice(11, 0, '-'); + return arrPhone.join(''); + } else { + return 'Телефонный номер должен содержать только цифры'; + }; + }; + + addUser(id, name, phone) { + let objUser = { + id, + name + }; + if(this.checkForNumbers (phone)) { + objUser.phone = phone; + this.dataBase.push(objUser); + } else { + console.log('Введите коренктный номер') + }; + }; + + removeUserByName(name) { + let indexDelete = this.dataBase.findIndex((elem) => { + return elem.name === name; + }); + if(indexDelete === -1) { + console.log('Нет такого пользователя'); + } else { + this.dataBase.splice(indexDelete, 1); + }; + }; + + searchByName(value) { + let newArr = []; + this.dataBase.forEach((elem) => { + if(elem.name == value) { + newArr.push(elem) + }; + }); + newArr.forEach((elem) => { + console.log('Поиск по имени --->', elem); + }); + }; + + changeUserData(initialUser, value) { + let arr = this.dataBase; + arr.forEach((elem) =>{ + for(let key in elem) { + if(elem[key] == initialUser) { + elem[key] = value; + }; + }; + }); + }; + + sortingUsers(value) { + function compare(a, b) { + return a[value] > b[value]; + }; + let tmp = this.dataBase.sort(compare); + console.log('Сортировка пользователей по заданному свойству --->', tmp); + }; +}; +let phoneApp = new PhoneApp(); +console.log('проверенный и преобразованый номер --->', phoneApp.transformNumber('0995305385')); +console.log('номер не прошедший проверку --->', phoneApp.transformNumber('099530)5385')); +phoneApp.addUser(3, 'Natalia', '0995305300'); +phoneApp.removeUserByName('Tom2'); +phoneApp.searchByName('Natalia'); +phoneApp.changeUserData(3, 5); +phoneApp.sortingUsers('id');