From 2c440594a541be450abaedbe9cd69b712b83a259 Mon Sep 17 00:00:00 2001 From: "petr.diukin" Date: Thu, 4 Mar 2021 22:19:51 +0500 Subject: [PATCH 1/4] =?UTF-8?q?=D0=94=D1=8E=D0=BA=D0=B8=D0=BD=20=D0=9F?= =?UTF-8?q?=D0=B5=D1=82=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/task_1/index.js | 38 +++++++++++++++++--------------------- src/task_2/index.js | 33 +++++++++++++-------------------- 2 files changed, 30 insertions(+), 41 deletions(-) diff --git a/src/task_1/index.js b/src/task_1/index.js index 966f6fc..4549726 100644 --- a/src/task_1/index.js +++ b/src/task_1/index.js @@ -1,25 +1,21 @@ -/** Задача 1 - Функция add -Требуется написать функцию add, которая -принимает: - 1) Текущее состояние телефонной книги - 2) Номер телефон - 3) Имя - 4) Электронную почту, -требуется: -в текущее состояние телефонной книги добавить новый контакт по правилам - 1) Телефоны принимаются только в форматах +7-999-111-22-33 или +79991112233 - 2) Не добавляется уже существующая запись - 3) Не добавляется запись без имени -возвращает: - true - если добавление прошло успешно - false - если запись не создалась или не добавилась в книгу -@param {Array<{ phone: string, name: string, email?: string }>} phoneBook - Текущее состояние телефонной книги -@param {string} phone Номер телефона -@param {string} name Имя -@param {string} email Электронная почта -@returns {boolean} Результат добавления - */ function add(phoneBook, phone, name, email) { + let firstPattern = /^\+7-\d\d\d-\d\d\d-\d\d-\d\d$/; + let secondPattern = /^\+7\d\d\d\d\d\d\d\d\d\d$/; + let check = false; + if (firstPattern.test(phone) || secondPattern.test(phone)) + { + let number = phone.match(/\d/g).join(''); + for (let i = 0; i < phoneBook.length; i++) { + let currentNumber = phoneBook[i].phone.match(/\d/g).join(''); + if (name === '' || name === undefined || phoneBook[i].name === name || number === currentNumber) + check = true; + } + if (check) return false; + let obj = {name : name, phone : phone, email : email }; + phoneBook.push(obj); + return true; + } + return false; } module.exports.add = add; diff --git a/src/task_2/index.js b/src/task_2/index.js index a5ad6b9..172bb67 100644 --- a/src/task_2/index.js +++ b/src/task_2/index.js @@ -1,24 +1,17 @@ -/** Задача 2 - Функция update -Требуется написать функцию update, которая -принимает: - 1) Текущее состояние телефонной книги - 2) Номер телефон - 3) Имя - 4) Электронную почту, -требуется: -в текущем состояние телефонной книги обновить контакт по номеру телефона - 1) Электронную почту можно стереть, а имя нет - 2) Правила валидации полей такое же, как и при добавлении -возвращает: - true - если обновление прошло успешно - false - если запись не обновилась -@param {Array<{ phone: string, name: string, email?: string }>} phoneBook - Текущее состояние телефонной книги -@param {string} phone Номер телефона -@param {string} name Имя -@param {string} email Электронная почта -@returns {boolean} Результат обновления - */ function update(phoneBook, phone, name, email) { + let firstPattern = /^\+7-\d\d\d-\d\d\d-\d\d-\d\d$/; + let secondPattern = /^\+7\d\d\d\d\d\d\d\d\d\d$/; + if ((firstPattern.test(phone) || secondPattern.test(phone)) && name !== undefined && name !== '') + { + let number = phone.match(/\d/g).join(''); + for (let i = 0; i < phoneBook.length; i++) { + if (phoneBook[i].phone.match(/\d/g).join('') !== number) continue; + phoneBook[i].name = name; + phoneBook[i].email = email; + return true; + } + } + return false; } module.exports.update = update; From ca4213a809fa383f9362afd9633623c0862c1cc6 Mon Sep 17 00:00:00 2001 From: "petr.diukin" Date: Thu, 4 Mar 2021 22:22:20 +0500 Subject: [PATCH 2/4] =?UTF-8?q?=D0=94=D1=8E=D0=BA=D0=B8=D0=BD=20=D0=9F?= =?UTF-8?q?=D0=B5=D1=82=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/task_1/index.js | 2 +- src/task_2/index.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/task_1/index.js b/src/task_1/index.js index 4549726..b0cb4a6 100644 --- a/src/task_1/index.js +++ b/src/task_1/index.js @@ -18,4 +18,4 @@ function add(phoneBook, phone, name, email) { return false; } -module.exports.add = add; +module.exports.add = add; \ No newline at end of file diff --git a/src/task_2/index.js b/src/task_2/index.js index 172bb67..ed14806 100644 --- a/src/task_2/index.js +++ b/src/task_2/index.js @@ -14,4 +14,4 @@ function update(phoneBook, phone, name, email) { return false; } -module.exports.update = update; +module.exports.update = update; \ No newline at end of file From 9e855696d93828df9436c1af2328152ea8bdf871 Mon Sep 17 00:00:00 2001 From: "petr.diukin" Date: Thu, 4 Mar 2021 22:35:00 +0500 Subject: [PATCH 3/4] =?UTF-8?q?=D0=94=D1=8E=D0=BA=D0=B8=D0=BD=20=D0=9F?= =?UTF-8?q?=D0=B5=D1=82=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/task_1/index.js | 1 - src/task_2/index.js | 1 - src/task_3/index.js | 29 +++++------------------------ 3 files changed, 5 insertions(+), 26 deletions(-) diff --git a/src/task_1/index.js b/src/task_1/index.js index b0cb4a6..a77885b 100644 --- a/src/task_1/index.js +++ b/src/task_1/index.js @@ -17,5 +17,4 @@ function add(phoneBook, phone, name, email) { } return false; } - module.exports.add = add; \ No newline at end of file diff --git a/src/task_2/index.js b/src/task_2/index.js index ed14806..d371b74 100644 --- a/src/task_2/index.js +++ b/src/task_2/index.js @@ -13,5 +13,4 @@ function update(phoneBook, phone, name, email) { } return false; } - module.exports.update = update; \ No newline at end of file diff --git a/src/task_3/index.js b/src/task_3/index.js index 67fd3cf..6f232cf 100644 --- a/src/task_3/index.js +++ b/src/task_3/index.js @@ -1,24 +1,5 @@ -/** Задача 2 - Функция find -Требуется написать функцию find, которая -принимает: - 1) Текущее состояние телефонной книги - 2) Запрос для поиска -требуется: -в текущем состоянии телефонной книги найти все записи, которые удовлетворяют требованиям - 1) Одно из полей name, email содержит подстроку поиска - 2) Поиск по полю phone проводится по следующим правилам: - 2.1) При запросе +7-800-555-35-35 должны отображаться записи с номерами +7-800-555-35-35 и +78005553535 - 2.2) При запросе +78005553535 должны отображаться записи с номерами +78005553535 и +7-800-555-35-35 - 2) Пустой запрос не должен ничего находить - 3) Запрос «*» находит все записи -возвращает: - Отсортированный по полю name массив строк в формате name, phone, email - Поле phone должно быть отформатировано в виде +7 (999) 111-22-33 -@param {Array<{ phone: string, name: string, email?: string }>} phoneBook - Текущее состояние телефонной книги -@param {string} query Строка для поиска -@returns {Array} Результаты поиска - */ -function find(phoneBook, query) { -} - -module.exports.find = find; +Простите меня, пожалуйста:( +Неправильно рассчитал время и не успел доделать практики. +Ответственности с себя не снимаю, это моя и только моя вина:( +Против правил идти не собираюсь и ни на какие поблажки не надеюсь, но был бы благодарен, +если вы проверите хотя бы 2 моих сделанных номера. Спасибо! Больше такого не повторится \ No newline at end of file From c2de977ab098c5ec49d19925ed4f64ef82815178 Mon Sep 17 00:00:00 2001 From: "petr.diukin" Date: Thu, 4 Mar 2021 22:37:06 +0500 Subject: [PATCH 4/4] =?UTF-8?q?=D0=9F=D0=B5=D1=82=D1=80=20=D0=94=D1=8E?= =?UTF-8?q?=D0=BA=D0=B8=D0=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/task_3/index.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/task_3/index.js b/src/task_3/index.js index 6f232cf..afd9ca4 100644 --- a/src/task_3/index.js +++ b/src/task_3/index.js @@ -1,5 +1,5 @@ -Простите меня, пожалуйста:( -Неправильно рассчитал время и не успел доделать практики. -Ответственности с себя не снимаю, это моя и только моя вина:( -Против правил идти не собираюсь и ни на какие поблажки не надеюсь, но был бы благодарен, -если вы проверите хотя бы 2 моих сделанных номера. Спасибо! Больше такого не повторится \ No newline at end of file +"Простите меня, пожалуйста:(" +"Неправильно рассчитал время и не успел доделать практики. " +"Ответственности с себя не снимаю, это моя и только моя вина:(" +"Против правил идти не собираюсь и ни на какие поблажки не надеюсь, но был бы благодарен," +"если вы проверите хотя бы 2 моих сделанных номера. Спасибо! Больше такого не повторится" \ No newline at end of file