diff --git a/js-core/homeworks/phonebook/index.html b/js-core/homeworks/phonebook/index.html
new file mode 100644
index 0000000..865ef08
--- /dev/null
+++ b/js-core/homeworks/phonebook/index.html
@@ -0,0 +1,10 @@
+
+
+
+
+ test page
+
+
+
+
+
diff --git a/js-core/homeworks/phonebook/src/main.js b/js-core/homeworks/phonebook/src/main.js
new file mode 100644
index 0000000..4cd237a
--- /dev/null
+++ b/js-core/homeworks/phonebook/src/main.js
@@ -0,0 +1,99 @@
+/*Создайте функцию конструктор.
+У данной функции должны быть методы:
+
+Преобразование телефонного номера из формата 0993378130 в (099) 33-78-130
+Проверка, что телефонный номер содержит только числа
+Добавление пользователей в справочник
+Удаление пользователя по имени, фамилии
+Поиск пользователей по имени - отображает всех пользователей с одинаковым именем
+Изменение имени, фамилии, телефонного номера у выбраного пользователя ( здесь должно быть реализовано через this )
+Сортировка пользователей по номеру телефона, фамилии, имени и тд, по любому из свойств пользователя
+Фильтр по указанному свойству
+*/
+
+
+class PhoneApp{
+ constructor(){
+ this.database = []
+ }
+ numberValidate(number){
+ if(!isNaN(number)){
+ return true
+ } else{
+ return false
+ console.log('not a number')
+ }
+ }
+ formatNumber(number) {
+ if(this.numberValidate(number)){
+ let numberToArr = number.split('');
+ numberToArr.splice(0, 0, '(');
+ numberToArr.splice(4, 0, ')', ' ');
+ numberToArr.splice(8, 0, '-');
+ numberToArr.splice(11, 0, '-');
+ return numberToArr.join('');
+ } else {
+ return 'Телефонный номер должен содержать только цифры';
+ };
+ };
+ addUser(name, number){
+ let newUser = {
+ name
+ }
+ newUser.id = this.database.length + 1
+ if(this.numberValidate(number)){
+ newUser.number = number
+ this.database.push(newUser)
+ } else{
+ console.log('Something wrong')
+ }
+ }
+ removeUserByName(name){
+ let userName = this.database.findIndex(elem => {
+ return elem.name === name
+ })
+ if(!userName -1 ){
+ this.database.splice(userName, 1)
+ }
+ }
+ findUserByName(name) {
+ let newArr = [];
+ this.database.forEach((elem) => {
+ if(elem.name == name) {
+ newArr.push(elem)
+ };
+ });
+ newArr.forEach((elem) => {
+ console.log(elem);
+ });
+ };
+ editUser(user, editUser) {
+ let arr = this.database;
+ arr.forEach((elem) =>{
+ for(let key in elem) {
+ if(elem[key] == user) {
+ elem[key] = editUser;
+ }
+ }
+ })
+ }
+ sortUser(prop) {
+ function findUser(a, b) {
+ return a[prop] > b[prop];
+ };
+ let tmp = this.database.sort(findUser);
+ console.log(tmp);
+ }
+}
+
+const myApp = new PhoneApp();
+myApp.numberValidate('0983214534');
+console.log(myApp.formatNumber('0633888930'))
+myApp.addUser('Alex', '0633888391');
+myApp.addUser('Alsex', '0333888890');
+myApp.addUser('Tim', '0668974563')
+myApp.addUser('Kate', '0504569874')
+myApp.removeUserByName('Alsex')
+myApp.findUserByName('Alex')
+myApp.sortUser('name')
+myApp.sortUser('id')