From e73859b777f570f5b9c603fb36772a4df4f54d14 Mon Sep 17 00:00:00 2001 From: MaximRhz Date: Thu, 12 Oct 2017 16:12:22 +0500 Subject: [PATCH 1/9] Update phone-book.js --- phone-book.js | 110 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 109 insertions(+), 1 deletion(-) diff --git a/phone-book.js b/phone-book.js index 69fb468..ab60a93 100644 --- a/phone-book.js +++ b/phone-book.js @@ -9,7 +9,7 @@ exports.isStar = true; /** * Телефонная книга */ -var phoneBook; +var phoneBook = []; /** * Добавление записи в телефонную книгу @@ -17,8 +17,48 @@ var phoneBook; * @param {String} name * @param {String} email */ + +/* phoneBook.add('5554440044', 'Григорий', 'grisha@example.com'); +phoneBook.add('5552220022', 'Борис', 'boris@example.com'); +phoneBook.add('5551110011', 'Алекс'); +phoneBook.add('5553330033', 'Валерий', 'valera@example.com'); */ + +function checkData(phone, name, email) { + if (phone.match(/^\d{10}$/) && + name !== undefined && + (email === undefined || + email.match(/^[\w.-_]+@[\w.-_]+\.\w{2,4}$/i))) { + + return true; + } + + return false; +} + +function checkTwin(phone, pBook) { + let length = pBook.length; + var boolOne = true; + var boolTwo = true; + for (let i = 0; i < length; i++) { + if (pBook[i].phone === phone) { + boolOne = false; + } + + boolTwo = true; + } + + return boolOne && boolTwo; +} + exports.add = function (phone, name, email) { + // console.log(phone.length); + if (checkData(phone, name, email) && checkTwin(phone, phoneBook)) { + phoneBook.push({ phone, name, email }); + return true; + } + + return false; }; /** @@ -27,24 +67,92 @@ exports.add = function (phone, name, email) { * @param {String} name * @param {String} email */ + +function updateSupport(i, name, email) { + if (name !== undefined) { + phoneBook[i].name = name; + } + if (email !== undefined) { + phoneBook[i].email = email; + } + if (email === undefined) { + phoneBook[i].email = undefined; + } +} + exports.update = function (phone, name, email) { + var state = false; + let length = phoneBook.length; + for (let i = 0; i < length; i++) { + if (phoneBook[i].phone === phone) { + updateSupport(i, name, email); + state = true; + } + } + return state; }; + /** * Удаление записей по запросу из телефонной книги * @param {String} query */ + exports.findAndRemove = function (query) { + var countSplice = 0; + for (let i = 0; i < phoneBook.length; i++) { + if (phoneBook[i].phone.indexOf(query) !== -1 || + phoneBook[i].name.indexOf(query) !== -1 || (phoneBook[i].email && + phoneBook[i].email.indexOf(query) !== -1)) { + countSplice++; + phoneBook.splice(i, 1); + i --; + } + } + return countSplice; }; /** * Поиск записей по запросу в телефонной книге * @param {String} query */ + +function sortData(i) { + var listOfData = ''; + var newPhone = ''; + if (phoneBook[i].email !== undefined) { + newPhone = '+7 (' + phoneBook[i].phone.slice(0, 3) + ') ' + phoneBook[i].phone.slice(3, 6) + + '-' + phoneBook[i].phone.slice(6, 8) + '-' + phoneBook[i].phone.slice(8, 10); + listOfData += phoneBook[i].name + ', ' + newPhone + ', ' + phoneBook[i].email; + } else { + newPhone = '+7 (' + phoneBook[i].phone.slice(0, 3) + ') ' + phoneBook[i].phone.slice(3, 6) + + '-' + phoneBook[i].phone.slice(6, 8) + '-' + phoneBook[i].phone.slice(8, 10); + listOfData += phoneBook[i].name + ', ' + newPhone; + } + + return listOfData; +} +function findHelp(query) { + var endData = []; + for (let i = 0; i < phoneBook.length; i++) { + if (query === '*') { + endData.push(sortData(i)); + } + if (phoneBook[i].phone.indexOf(query) !== -1 || + phoneBook[i].name.indexOf(query) !== -1) { + endData.push(sortData(i)); + } + } + + return endData.sort(); +} exports.find = function (query) { + if (query !== '') { + return findHelp(query); + } }; /** From 870fb8a0a4611fadbde614f422bac936f66f727f Mon Sep 17 00:00:00 2001 From: MaximRhz Date: Thu, 12 Oct 2017 16:19:55 +0500 Subject: [PATCH 2/9] t2 --- phone-book.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/phone-book.js b/phone-book.js index ab60a93..737eed4 100644 --- a/phone-book.js +++ b/phone-book.js @@ -4,7 +4,7 @@ * Сделано задание на звездочку * Реализован метод importFromCsv */ -exports.isStar = true; +exports.isStar = false; /** * Телефонная книга From e4cc31fcfb0eb291e4364110468924e7a7151f73 Mon Sep 17 00:00:00 2001 From: MaximRhz Date: Sat, 14 Oct 2017 13:38:25 +0500 Subject: [PATCH 3/9] Update phone-book.js --- phone-book.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/phone-book.js b/phone-book.js index 737eed4..fa9070c 100644 --- a/phone-book.js +++ b/phone-book.js @@ -24,7 +24,7 @@ phoneBook.add('5551110011', 'Алекс'); phoneBook.add('5553330033', 'Валерий', 'valera@example.com'); */ function checkData(phone, name, email) { - if (phone.match(/^\d{10}$/) && + if (phone !== undefined && (phone.match(/^\d{10}$/)) && name !== undefined && (email === undefined || email.match(/^[\w.-_]+@[\w.-_]+\.\w{2,4}$/i))) { @@ -149,12 +149,12 @@ function findHelp(query) { return endData.sort(); } exports.find = function (query) { - if (query !== '') { + if (query !== '' && query !== undefined) { return findHelp(query); } }; - +// console.log(phoneBook); /** * Импорт записей из csv-формата * @star From 60f823f0c45ce3092b1909a19d570890d08e6b9b Mon Sep 17 00:00:00 2001 From: MaximRhz Date: Sat, 14 Oct 2017 14:01:21 +0500 Subject: [PATCH 4/9] t4 --- phone-book.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/phone-book.js b/phone-book.js index fa9070c..5db5403 100644 --- a/phone-book.js +++ b/phone-book.js @@ -25,7 +25,7 @@ phoneBook.add('5553330033', 'Валерий', 'valera@example.com'); */ function checkData(phone, name, email) { if (phone !== undefined && (phone.match(/^\d{10}$/)) && - name !== undefined && + name !== undefined && name.match(/^[а-яA-Z]+$/i) && (email === undefined || email.match(/^[\w.-_]+@[\w.-_]+\.\w{2,4}$/i))) { @@ -84,7 +84,7 @@ exports.update = function (phone, name, email) { var state = false; let length = phoneBook.length; for (let i = 0; i < length; i++) { - if (phoneBook[i].phone === phone) { + if (phoneBook[i].phone === phone && name.match(/^[а-яA-Z]+$/i)) { updateSupport(i, name, email); state = true; } From 3c0592304cad4bd1d5450b414312aa3b57de7780 Mon Sep 17 00:00:00 2001 From: MaximRhz Date: Sat, 14 Oct 2017 14:10:53 +0500 Subject: [PATCH 5/9] t5 --- phone-book.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/phone-book.js b/phone-book.js index 5db5403..940003a 100644 --- a/phone-book.js +++ b/phone-book.js @@ -69,7 +69,7 @@ exports.add = function (phone, name, email) { */ function updateSupport(i, name, email) { - if (name !== undefined) { + if (name !== undefined && !name.match(/@/i)) { phoneBook[i].name = name; } if (email !== undefined) { @@ -78,13 +78,16 @@ function updateSupport(i, name, email) { if (email === undefined) { phoneBook[i].email = undefined; } + if (name.match(/@/i)) { + phoneBook[i].email = name; + } } exports.update = function (phone, name, email) { var state = false; let length = phoneBook.length; for (let i = 0; i < length; i++) { - if (phoneBook[i].phone === phone && name.match(/^[а-яA-Z]+$/i)) { + if (phoneBook[i].phone === phone) { updateSupport(i, name, email); state = true; } From ae6ca7fde2d2698c5e71b4f9104bf279894ecea7 Mon Sep 17 00:00:00 2001 From: MaximRhz Date: Sat, 14 Oct 2017 14:17:59 +0500 Subject: [PATCH 6/9] t12 --- phone-book.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/phone-book.js b/phone-book.js index 940003a..20d453e 100644 --- a/phone-book.js +++ b/phone-book.js @@ -25,9 +25,9 @@ phoneBook.add('5553330033', 'Валерий', 'valera@example.com'); */ function checkData(phone, name, email) { if (phone !== undefined && (phone.match(/^\d{10}$/)) && - name !== undefined && name.match(/^[а-яA-Z]+$/i) && - (email === undefined || - email.match(/^[\w.-_]+@[\w.-_]+\.\w{2,4}$/i))) { + name !== undefined&& + (email === undefined /* || + email.match(/^[\w.-_]+@[\w.-_]+\.\w{2,4}$/i))*/) { return true; } From 8b3376f9ba0ddd9035d6fc80edd762d284461ee1 Mon Sep 17 00:00:00 2001 From: MaximRhz Date: Sat, 14 Oct 2017 14:23:17 +0500 Subject: [PATCH 7/9] Update phone-book.js --- phone-book.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/phone-book.js b/phone-book.js index 20d453e..258a8b1 100644 --- a/phone-book.js +++ b/phone-book.js @@ -23,12 +23,10 @@ phoneBook.add('5552220022', 'Борис', 'boris@example.com'); phoneBook.add('5551110011', 'Алекс'); phoneBook.add('5553330033', 'Валерий', 'valera@example.com'); */ -function checkData(phone, name, email) { +function checkData(phone, name) { if (phone !== undefined && (phone.match(/^\d{10}$/)) && - name !== undefined&& - (email === undefined /* || - email.match(/^[\w.-_]+@[\w.-_]+\.\w{2,4}$/i))*/) { - + name !== undefined && name.match(/^[а-яA-Z]+$/i)) { + // &&(email === undefined || email.match(/^[\w.-_]+@[\w.-_]+\.\w{2,4}$/i)) return true; } From fe97a9d94959589a6531be9d02b9da30421dde27 Mon Sep 17 00:00:00 2001 From: MaximRhz Date: Sat, 14 Oct 2017 14:28:37 +0500 Subject: [PATCH 8/9] qwe --- phone-book.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/phone-book.js b/phone-book.js index 258a8b1..61c05f7 100644 --- a/phone-book.js +++ b/phone-book.js @@ -25,8 +25,9 @@ phoneBook.add('5553330033', 'Валерий', 'valera@example.com'); */ function checkData(phone, name) { if (phone !== undefined && (phone.match(/^\d{10}$/)) && - name !== undefined && name.match(/^[а-яA-Z]+$/i)) { - // &&(email === undefined || email.match(/^[\w.-_]+@[\w.-_]+\.\w{2,4}$/i)) + name !== undefined && !name.match(/@/)) { + // &&(email === undefined || + // email.match(/^[\w.-_]+@[\w.-_]+\.\w{2,4}$/i)) name.match(/^[а-яA-Z]+$/i) return true; } From 4d8a62b3be6b4a42371c3a1d0db307e9f19ac216 Mon Sep 17 00:00:00 2001 From: MaximRhz Date: Fri, 27 Oct 2017 12:36:02 +0500 Subject: [PATCH 9/9] new --- phone-book.js | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/phone-book.js b/phone-book.js index 61c05f7..d22e00f 100644 --- a/phone-book.js +++ b/phone-book.js @@ -68,27 +68,21 @@ exports.add = function (phone, name, email) { */ function updateSupport(i, name, email) { - if (name !== undefined && !name.match(/@/i)) { + if (name !== null && name !== undefined && name.length > 0) { phoneBook[i].name = name; - } - if (email !== undefined) { phoneBook[i].email = email; + + return true; } - if (email === undefined) { - phoneBook[i].email = undefined; - } - if (name.match(/@/i)) { - phoneBook[i].email = name; - } + + return false; } exports.update = function (phone, name, email) { var state = false; - let length = phoneBook.length; - for (let i = 0; i < length; i++) { + for (let i = 0; i < phoneBook.length; i++) { if (phoneBook[i].phone === phone) { - updateSupport(i, name, email); - state = true; + state = updateSupport(i, name, email); } } @@ -155,6 +149,8 @@ exports.find = function (query) { return findHelp(query); } + + return []; }; // console.log(phoneBook); /**