diff --git a/Call Book/index.html b/Call Book/index.html new file mode 100644 index 0000000..c605f1b --- /dev/null +++ b/Call Book/index.html @@ -0,0 +1,12 @@ + + + + + Phone Book + + + + + diff --git a/Call Book/js.js b/Call Book/js.js new file mode 100644 index 0000000..3439d27 --- /dev/null +++ b/Call Book/js.js @@ -0,0 +1,140 @@ + + + + +// Приложение телефонный справочник +// +// Создайте функцию конструктор. +// У данной функции должны быть методы: +// +// 1 Преобразование телефонного номера из формата 0993378130 в (099) 33-78-130++ +// 2 Проверка, что телефонный номер содержит только числа ++ +// 3 Добавление пользователей в справочник ++ +// 4 Удаление пользователя по имени, фамилии ++ +// 5 Поиск пользователей по имени - отображает всех пользователей с одинаковым именем ++ +// 6 Изменение имени, фамилии, телефонного номера у выбраного пользователя ++ +// 7 Сортировка пользователей по номеру телефона, фамилии, имени и тд, по любому из свойств пользователя++ +// 8 Фильтр по указанному свойству++ + + + + + +function PhoneApp() { + this.dataBase = [ + {id:1, name:'Vasya',thername: "Ivanov", numb: `(099)33-78-130`}, + {id:2, name:'Dima', thername: "Ivanov", numb: `(099)33-78-130`}, + {id:3, name:'Grisha', thername: "Ivanov", numb: `(099)33-78-130`}, + {id:4, name:'Jora', thername: "Ivanov", numb: `(099)33-78-130`}, + {id:5, name:'Jora', thername: "Ivanov", numb: `(099)33-78-130`}, + ] +} + +PhoneApp.prototype.editUser = function(name,thername,numb) { + // проверяем длину номера + if (numb.length > 10) { + console.error(`make correct numb`); + } +// проверяем содержимое + for (var i = 0; i < numb.length; i++) { + var newNumb = +numb[i]; + if (typeof newNumb != `number` || typeof newNumb == `NaN`) { + console.error(`not correct numb`); + continue; + } + } +// формируем корректный формат +let firstThreeNumb = `${numb[0]}${numb[1]}${numb[2]}`; +let secondTwoNumb = `${numb[3]}${numb[4]}`; +let therdTwoNumb = `${numb[5]}${numb[6]}`; +let fourthThreeNumb = `${numb[7]}${numb[8]}${numb[9]}`; +let readyNumb = `(${firstThreeNumb})${secondTwoNumb}-${therdTwoNumb}-${fourthThreeNumb}`; +//формируем ID по длине массива + 1 +let correctId = this.dataBase.length+1; + +this.dataBase.push({id:correctId,name:name,thername:thername,numb:readyNumb}) // now it is not so long ;) +} + + + +PhoneApp.prototype.usersRemovingByThernameAndName = function(username) { + this.dataBase.forEach((value) => { + if (value.name == username) { + this.dataBase = this.dataBase.filter((value) => { + return value.name != username + }) + } + if (value.thername == username) { + this.dataBase = this.dataBase.filter((value) => { + + return value.thername != username + }) + } + }) +} + +PhoneApp.prototype.searchUsers = function(username) { + let allUsers = []; + this.dataBase.forEach((value, index, arr)=> { + + if (value.name === username) { + allUsers.push(this.dataBase[index]); + + } + }) + console.log(allUsers); +} + +PhoneApp.prototype.changeUsers = function(userId, name, thername, numb) { + // проверяем длину номера + if (numb.length > 10) { + console.error(`make correct numb`); + } + // проверяем содержимое + for (var i = 0; i < numb.length; i++) { + var newNumb = +numb[i]; + if (typeof newNumb != `number` || typeof newNumb == `NaN`) { + console.error(`not correct numb`); + continue; + } + } + // формируем корректный формат + let firstThreeNumb = `${numb[0]}${numb[1]}${numb[2]}`; + let secondTwoNumb = `${numb[3]}${numb[4]}`; + let therdTwoNumb = `${numb[5]}${numb[6]}`; + let fourthThreeNumb = `${numb[7]}${numb[8]}${numb[9]}`; + let readyNumb = `(${firstThreeNumb})${secondTwoNumb}-${therdTwoNumb}-${fourthThreeNumb}`; + + this.dataBase.forEach((value, index, arr)=> { + let correctId = index + 1; + if (value.id == userId) { + this.dataBase[index] = {id:correctId,name:name,thername:thername,numb:readyNumb};// now it is not so long ;) + }; + }); +} + +PhoneApp.prototype.sortUsers = function(property) { + + console.log(property); + var newArray = this.dataBase.sort((a, b) => { + return a[property] == b[property] ? 0 : a[property] < b[property] ? -1 : 1;}) + + + console.log(newArray); +} +PhoneApp.prototype.filterUsers = function(property) { + let filteredArray = [] + this.dataBase.filter((value,index,arr)=>{ + filteredArray.push(`${property}: ${value[property]}`); + }) + console.log(filteredArray); +} + +const myApp = new PhoneApp(); +myApp.editUser(`Petiya`,`Petrov`, `0993378130`) +myApp.editUser(`Alex`,`Petrov`, `0093378130`) +// myApp.usersRemovingByThernameAndName('Petrov') + + + +console.log(myApp);