From d778291cec5b29071d0020158797d5c649deb005 Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Tue, 23 Oct 2018 23:22:36 +0500 Subject: [PATCH 01/49] Update phone-book.js --- phone-book.js | 46 ++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 42 insertions(+), 4 deletions(-) diff --git a/phone-book.js b/phone-book.js index 891d7c01..14c4a6ee 100644 --- a/phone-book.js +++ b/phone-book.js @@ -19,9 +19,17 @@ let phoneBook; * @returns {Boolean} */ function add(phone, name, email) { - + if (arguments.length === 2) { + phoneBook.push(phone + ';' + name); + return true; + } + if (phone.length!==10 && arguments.length!==3) return false; + phoneBook.push(phone + ';' + name + ';' + email); + return true; } + + /** * Обновление записи в телефонной книге * @param {String} phone @@ -30,7 +38,13 @@ function add(phone, name, email) { * @returns {Boolean} */ function update(phone, name, email) { - + this.forEach(element => { + if (this[element].substring(0,10)===phone && name!==null) { + element = phone + ";" + name + ";" + email; + return true; + } + }); + return false; } /** @@ -39,7 +53,15 @@ function update(phone, name, email) { * @returns {Number} */ function findAndRemove(query) { - + let count = 0; + this.forEach(element => { + if (element.indexOf(query)!==-1){ + this.splice(indexOf(element), 1); + count++; + } + }); + this.sort(); + return count; } /** @@ -48,7 +70,22 @@ function findAndRemove(query) { * @returns {String[]} */ function find(query) { - + let notes = []; + if (query==="*") { + return this; + } + if (arguments.length === 0){ + return; + } + if (arguments.length!==0) { + this.forEach(element => { + if(element.indexOf(query)!==-1) { + notes.push(element); + }; + }); + notes.sort(); + return notes; + } } /** @@ -74,3 +111,4 @@ module.exports = { isStar }; + From bf7bf0bee3223376b9d72d8e666d831cce2ceca1 Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Tue, 23 Oct 2018 23:34:28 +0500 Subject: [PATCH 02/49] Update phone-book.js --- phone-book.js | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/phone-book.js b/phone-book.js index 14c4a6ee..e0f8c71d 100644 --- a/phone-book.js +++ b/phone-book.js @@ -21,10 +21,14 @@ let phoneBook; function add(phone, name, email) { if (arguments.length === 2) { phoneBook.push(phone + ';' + name); + return true; } - if (phone.length!==10 && arguments.length!==3) return false; + if (phone.length !== 10 && arguments.length !== 3) { + return false; + } phoneBook.push(phone + ';' + name + ';' + email); + return true; } @@ -39,11 +43,12 @@ function add(phone, name, email) { */ function update(phone, name, email) { this.forEach(element => { - if (this[element].substring(0,10)===phone && name!==null) { - element = phone + ";" + name + ";" + email; + if (this[element].substring(0,10) === phone && name !== null) { + element = phone + ';' + name + ';' + email; return true; } }); + return false; } @@ -55,12 +60,13 @@ function update(phone, name, email) { function findAndRemove(query) { let count = 0; this.forEach(element => { - if (element.indexOf(query)!==-1){ - this.splice(indexOf(element), 1); + if (element.indexOf(query) !==-1){ + this.splice(this.indexOf(element), 1); count++; } }); this.sort(); + return count; } @@ -71,15 +77,15 @@ function findAndRemove(query) { */ function find(query) { let notes = []; - if (query==="*") { + if (query === '*') { return this; } if (arguments.length === 0){ return; } - if (arguments.length!==0) { + if (arguments.length !== 0) { this.forEach(element => { - if(element.indexOf(query)!==-1) { + if(element.indexOf(query) !== -1) { notes.push(element); }; }); @@ -111,4 +117,3 @@ module.exports = { isStar }; - From a57483bbfe0d7b66631e9072a10db2d68941b30c Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Tue, 23 Oct 2018 23:45:52 +0500 Subject: [PATCH 03/49] Update phone-book.js --- phone-book.js | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/phone-book.js b/phone-book.js index e0f8c71d..437a448a 100644 --- a/phone-book.js +++ b/phone-book.js @@ -1,8 +1,6 @@ 'use strict'; /** - * Сделано задание на звездочку - * Реализован метод importFromCsv */ const isStar = true; @@ -21,19 +19,16 @@ let phoneBook; function add(phone, name, email) { if (arguments.length === 2) { phoneBook.push(phone + ';' + name); - return true; } if (phone.length !== 10 && arguments.length !== 3) { return false; } phoneBook.push(phone + ';' + name + ';' + email); - + return true; } - - /** * Обновление записи в телефонной книге * @param {String} phone @@ -43,11 +38,12 @@ function add(phone, name, email) { */ function update(phone, name, email) { this.forEach(element => { - if (this[element].substring(0,10) === phone && name !== null) { - element = phone + ';' + name + ';' + email; - return true; + //if (this[element].substring(0,10) === phone && name !== null) { + // element = phone + ';' + name + ';' + email; + // return true; + return false; } - }); + ); return false; } @@ -60,10 +56,10 @@ function update(phone, name, email) { function findAndRemove(query) { let count = 0; this.forEach(element => { - if (element.indexOf(query) !==-1){ - this.splice(this.indexOf(element), 1); - count++; - } + //if (element.indexOf(query) !== -1) { + // this.splice(this.indexOf(element), 1); + // count++; + //} }); this.sort(); @@ -80,16 +76,17 @@ function find(query) { if (query === '*') { return this; } - if (arguments.length === 0){ + if (arguments.length === 0) { return; } if (arguments.length !== 0) { this.forEach(element => { - if(element.indexOf(query) !== -1) { + if (element.indexOf(query) !== -1) { notes.push(element); - }; + } }); notes.sort(); + return notes; } } From d9daa6821c48c209cd7df95be1647aae4984abfe Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Wed, 24 Oct 2018 00:03:45 +0500 Subject: [PATCH 04/49] Update phone-book.js --- phone-book.js | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/phone-book.js b/phone-book.js index 437a448a..1df27a7e 100644 --- a/phone-book.js +++ b/phone-book.js @@ -37,10 +37,11 @@ function add(phone, name, email) { * @returns {Boolean} */ function update(phone, name, email) { - this.forEach(element => { - //if (this[element].substring(0,10) === phone && name !== null) { - // element = phone + ';' + name + ';' + email; - // return true; + phoneBook.forEach(element => { + if (phoneBook[element].substring(0,10) === phone && name !== null) { + element = phone + ';' + name + ';' + email; + return true; + } return false; } ); @@ -55,13 +56,13 @@ function update(phone, name, email) { */ function findAndRemove(query) { let count = 0; - this.forEach(element => { - //if (element.indexOf(query) !== -1) { - // this.splice(this.indexOf(element), 1); - // count++; - //} + phoneBook.forEach(element => { + if (element.indexOf(query) !== -1) { + phoneBook.splice(phoneBook.indexOf(element), 1); + count++; + } }); - this.sort(); + return count; } @@ -74,13 +75,13 @@ function findAndRemove(query) { function find(query) { let notes = []; if (query === '*') { - return this; + return phoneBook; } if (arguments.length === 0) { return; } if (arguments.length !== 0) { - this.forEach(element => { + phoneBook.forEach(element => { if (element.indexOf(query) !== -1) { notes.push(element); } From eab8924ae4b0b52258ecb773f9c822f8c3f41ce1 Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Wed, 24 Oct 2018 00:08:38 +0500 Subject: [PATCH 05/49] Update phone-book.js --- phone-book.js | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/phone-book.js b/phone-book.js index 1df27a7e..3bea3086 100644 --- a/phone-book.js +++ b/phone-book.js @@ -19,6 +19,7 @@ let phoneBook; function add(phone, name, email) { if (arguments.length === 2) { phoneBook.push(phone + ';' + name); + return true; } if (phone.length !== 10 && arguments.length !== 3) { @@ -38,12 +39,14 @@ function add(phone, name, email) { */ function update(phone, name, email) { phoneBook.forEach(element => { - if (phoneBook[element].substring(0,10) === phone && name !== null) { + if (phoneBook[element].substring(0, 10) === phone && name !== null) { element = phone + ';' + name + ';' + email; + return true; } + return false; - } + } ); return false; @@ -58,12 +61,11 @@ function findAndRemove(query) { let count = 0; phoneBook.forEach(element => { if (element.indexOf(query) !== -1) { - phoneBook.splice(phoneBook.indexOf(element), 1); - count++; - } + phoneBook.splice(phoneBook.indexOf(element), 1); + count++; + } }); - return count; } From 21998db34625ef2989337a5425b69ea8094b613d Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Wed, 24 Oct 2018 00:12:00 +0500 Subject: [PATCH 06/49] Update phone-book.js From 745ab730b7cc7e0b9e5d5da72b33956a596cfc72 Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Wed, 24 Oct 2018 00:15:03 +0500 Subject: [PATCH 07/49] Update phone-book.js --- phone-book.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/phone-book.js b/phone-book.js index 3bea3086..4f187acc 100644 --- a/phone-book.js +++ b/phone-book.js @@ -19,7 +19,7 @@ let phoneBook; function add(phone, name, email) { if (arguments.length === 2) { phoneBook.push(phone + ';' + name); - + return true; } if (phone.length !== 10 && arguments.length !== 3) { @@ -41,14 +41,14 @@ function update(phone, name, email) { phoneBook.forEach(element => { if (phoneBook[element].substring(0, 10) === phone && name !== null) { element = phone + ';' + name + ';' + email; - + return true; } - + return false; } ); - + return false; } @@ -61,11 +61,11 @@ function findAndRemove(query) { let count = 0; phoneBook.forEach(element => { if (element.indexOf(query) !== -1) { - phoneBook.splice(phoneBook.indexOf(element), 1); - count++; - } + phoneBook.splice(phoneBook.indexOf(element), 1); + count++; + } }); - + return count; } From 05a9ec66dd268d37b2467896fb8b1b079ee41d93 Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Wed, 24 Oct 2018 00:22:29 +0500 Subject: [PATCH 08/49] Update phone-book.js --- phone-book.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/phone-book.js b/phone-book.js index 4f187acc..17a6a775 100644 --- a/phone-book.js +++ b/phone-book.js @@ -18,14 +18,22 @@ let phoneBook; */ function add(phone, name, email) { if (arguments.length === 2) { - phoneBook.push(phone + ';' + name); + phoneBook.push({ + phone: phone, + name: name, + email: email + }); return true; } if (phone.length !== 10 && arguments.length !== 3) { return false; } - phoneBook.push(phone + ';' + name + ';' + email); + phoneBook.push({ + phone: phone, + name: name, + email: email + }); return true; } From 26d342c8ac296afec9989e2b379c4dd6ca126abc Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Wed, 24 Oct 2018 00:52:14 +0500 Subject: [PATCH 09/49] Update phone-book.js --- phone-book.js | 38 +++++++++++++++++++++++++++++--------- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/phone-book.js b/phone-book.js index 17a6a775..b821791f 100644 --- a/phone-book.js +++ b/phone-book.js @@ -16,8 +16,36 @@ let phoneBook; * @param {String?} email * @returns {Boolean} */ +function isCorrectPhone(phone) { + if (phone !== undefined && typeof(phone) === 'string' && phone.length === 10) { + return true; + } + + return false; +} + +function isCorrectName(name) { + if (name !== undefined && typeof(name) === 'string') { + return true; + } + + return false; +} + +function isCorrectEmail(email) { + if (email === undefined) { + return true; + } + + return true; +} + +function isAllArgumentsCorrect(phone, name, email) { + return isCorrectPhone(phone) && isCorrectName(name) && isCorrectEmail(email); +} + function add(phone, name, email) { - if (arguments.length === 2) { + if (isAllArgumentsCorrect(phone, name, email)) { phoneBook.push({ phone: phone, name: name, @@ -26,14 +54,6 @@ function add(phone, name, email) { return true; } - if (phone.length !== 10 && arguments.length !== 3) { - return false; - } - phoneBook.push({ - phone: phone, - name: name, - email: email - }); return true; } From e305a66cc60513111256e1dcb95c9b8319b7b1f0 Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Wed, 24 Oct 2018 01:25:44 +0500 Subject: [PATCH 10/49] Update phone-book.js --- phone-book.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/phone-book.js b/phone-book.js index b821791f..d5303e01 100644 --- a/phone-book.js +++ b/phone-book.js @@ -55,7 +55,7 @@ function add(phone, name, email) { return true; } - return true; + return false; } /** From e6a826c78deb5024f7346e216dc9d5bb6ff55534 Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Wed, 24 Oct 2018 01:29:52 +0500 Subject: [PATCH 11/49] Update phone-book.js --- phone-book.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/phone-book.js b/phone-book.js index d5303e01..8aeb53bb 100644 --- a/phone-book.js +++ b/phone-book.js @@ -7,7 +7,7 @@ const isStar = true; /** * Телефонная книга */ -let phoneBook; +let phoneBook = []; /** * Добавление записи в телефонную книгу From 1bdb6fadea7a65267bc628cca1c1b5e8a5d43fa1 Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Wed, 24 Oct 2018 16:03:45 +0500 Subject: [PATCH 12/49] Update phone-book.js --- phone-book.js | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/phone-book.js b/phone-book.js index 8aeb53bb..bcab26f8 100644 --- a/phone-book.js +++ b/phone-book.js @@ -7,7 +7,7 @@ const isStar = true; /** * Телефонная книга */ -let phoneBook = []; +let phoneBook; /** * Добавление записи в телефонную книгу @@ -34,7 +34,17 @@ function isCorrectName(name) { function isCorrectEmail(email) { if (email === undefined) { - return true; + return false; + } + + return true; +} + +function recordNotExists(phone) { + for (let i = 0; i < phoneBook.length; i++) { + if (phoneBook[i].phone === phone) { + return false; + } } return true; @@ -45,7 +55,7 @@ function isAllArgumentsCorrect(phone, name, email) { } function add(phone, name, email) { - if (isAllArgumentsCorrect(phone, name, email)) { + if (isAllArgumentsCorrect(phone, name, email) && recordNotExists(phone)) { phoneBook.push({ phone: phone, name: name, From 9d2501da50ee10025540ee6147294d66d2551b8e Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Wed, 24 Oct 2018 16:06:43 +0500 Subject: [PATCH 13/49] Update phone-book.js --- phone-book.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/phone-book.js b/phone-book.js index bcab26f8..c24d2db8 100644 --- a/phone-book.js +++ b/phone-book.js @@ -7,7 +7,7 @@ const isStar = true; /** * Телефонная книга */ -let phoneBook; +let phoneBook = []; /** * Добавление записи в телефонную книгу @@ -42,9 +42,9 @@ function isCorrectEmail(email) { function recordNotExists(phone) { for (let i = 0; i < phoneBook.length; i++) { - if (phoneBook[i].phone === phone) { - return false; - } + if (phoneBook[i].phone === phone) { + return false; + } } return true; From 84c56e08ca4d28f42f6bf58b15130a4b1a1b8a89 Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Wed, 24 Oct 2018 16:28:31 +0500 Subject: [PATCH 14/49] Update phone-book.js --- phone-book.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/phone-book.js b/phone-book.js index c24d2db8..8c8bab18 100644 --- a/phone-book.js +++ b/phone-book.js @@ -40,11 +40,11 @@ function isCorrectEmail(email) { return true; } -function recordNotExists(phone) { +function recordNotExists(phone, name) { for (let i = 0; i < phoneBook.length; i++) { - if (phoneBook[i].phone === phone) { - return false; - } + if (phoneBook[i].phone === phone && phoneBook[i].name === name) { + return false; + } } return true; From aa7b831e490f25220a55872a4e736bc27fc24c15 Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Wed, 24 Oct 2018 16:30:25 +0500 Subject: [PATCH 15/49] 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 8c8bab18..1c421be8 100644 --- a/phone-book.js +++ b/phone-book.js @@ -42,9 +42,9 @@ function isCorrectEmail(email) { function recordNotExists(phone, name) { for (let i = 0; i < phoneBook.length; i++) { - if (phoneBook[i].phone === phone && phoneBook[i].name === name) { - return false; - } + if (phoneBook[i].phone === phone && phoneBook[i].name === name) { + return false; + } } return true; From ef57b6fe4d4f386cc2116a23c6b6ab66be1d2588 Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Wed, 24 Oct 2018 16:48:08 +0500 Subject: [PATCH 16/49] Update phone-book.js From 6c1d3203cb1b8c7e3184470c74328790db7d72a4 Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Wed, 24 Oct 2018 16:49:04 +0500 Subject: [PATCH 17/49] Update phone-book.js --- phone-book.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/phone-book.js b/phone-book.js index 1c421be8..02e2afa4 100644 --- a/phone-book.js +++ b/phone-book.js @@ -55,7 +55,7 @@ function isAllArgumentsCorrect(phone, name, email) { } function add(phone, name, email) { - if (isAllArgumentsCorrect(phone, name, email) && recordNotExists(phone)) { + if (isAllArgumentsCorrect(phone, name, email)) { phoneBook.push({ phone: phone, name: name, From 76b10e4c9a9cae7a9dbc51c070c2f9d64697ed1c Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Wed, 24 Oct 2018 16:51:54 +0500 Subject: [PATCH 18/49] Update phone-book.js --- phone-book.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/phone-book.js b/phone-book.js index 02e2afa4..1c421be8 100644 --- a/phone-book.js +++ b/phone-book.js @@ -55,7 +55,7 @@ function isAllArgumentsCorrect(phone, name, email) { } function add(phone, name, email) { - if (isAllArgumentsCorrect(phone, name, email)) { + if (isAllArgumentsCorrect(phone, name, email) && recordNotExists(phone)) { phoneBook.push({ phone: phone, name: name, From a8d5be8d398270d426a5efe9a3078a00b919f9e9 Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Wed, 24 Oct 2018 16:57:27 +0500 Subject: [PATCH 19/49] Update phone-book.js --- phone-book.js | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/phone-book.js b/phone-book.js index 1c421be8..90359472 100644 --- a/phone-book.js +++ b/phone-book.js @@ -40,22 +40,12 @@ function isCorrectEmail(email) { return true; } -function recordNotExists(phone, name) { - for (let i = 0; i < phoneBook.length; i++) { - if (phoneBook[i].phone === phone && phoneBook[i].name === name) { - return false; - } - } - - return true; -} - function isAllArgumentsCorrect(phone, name, email) { return isCorrectPhone(phone) && isCorrectName(name) && isCorrectEmail(email); } function add(phone, name, email) { - if (isAllArgumentsCorrect(phone, name, email) && recordNotExists(phone)) { + if (isAllArgumentsCorrect(phone, name, email)) { phoneBook.push({ phone: phone, name: name, From f7917a21734df334ddf90812a67e1d805a1e547b Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Wed, 24 Oct 2018 17:12:13 +0500 Subject: [PATCH 20/49] Update phone-book.js --- phone-book.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/phone-book.js b/phone-book.js index 90359472..e6918801 100644 --- a/phone-book.js +++ b/phone-book.js @@ -33,8 +33,14 @@ function isCorrectName(name) { } function isCorrectEmail(email) { - if (email === undefined) { - return false; + return true; +} + +function recordNotExists(phone) { + for (let i = 0; i < phoneBook.length; i++) { + if (phoneBook[i].phone === phone) { + return false; + } } return true; @@ -45,7 +51,7 @@ function isAllArgumentsCorrect(phone, name, email) { } function add(phone, name, email) { - if (isAllArgumentsCorrect(phone, name, email)) { + if (isAllArgumentsCorrect(phone, name, email) && recordNotExists(phone)) { phoneBook.push({ phone: phone, name: name, From 486686f76ef4de1ef5444eebe48546e9ee81ace3 Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Wed, 24 Oct 2018 17:15:31 +0500 Subject: [PATCH 21/49] Update phone-book.js --- phone-book.js | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/phone-book.js b/phone-book.js index e6918801..6f7c9e38 100644 --- a/phone-book.js +++ b/phone-book.js @@ -32,10 +32,6 @@ function isCorrectName(name) { return false; } -function isCorrectEmail(email) { - return true; -} - function recordNotExists(phone) { for (let i = 0; i < phoneBook.length; i++) { if (phoneBook[i].phone === phone) { @@ -46,12 +42,12 @@ function recordNotExists(phone) { return true; } -function isAllArgumentsCorrect(phone, name, email) { - return isCorrectPhone(phone) && isCorrectName(name) && isCorrectEmail(email); +function isAllArgumentsCorrect(phone, name) { + return isCorrectPhone(phone) && isCorrectName(name); } function add(phone, name, email) { - if (isAllArgumentsCorrect(phone, name, email) && recordNotExists(phone)) { + if (isAllArgumentsCorrect(phone, name) && recordNotExists(phone)) { phoneBook.push({ phone: phone, name: name, From 05f016ad448b305dbf22e4e27e213af43aea1cf7 Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Wed, 24 Oct 2018 17:32:18 +0500 Subject: [PATCH 22/49] Update phone-book.js --- phone-book.js | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/phone-book.js b/phone-book.js index 6f7c9e38..3659afd6 100644 --- a/phone-book.js +++ b/phone-book.js @@ -32,14 +32,14 @@ function isCorrectName(name) { return false; } -function recordNotExists(phone) { +function recordExists(phone) { for (let i = 0; i < phoneBook.length; i++) { if (phoneBook[i].phone === phone) { - return false; + return true; } } - return true; + return false; } function isAllArgumentsCorrect(phone, name) { @@ -47,9 +47,8 @@ function isAllArgumentsCorrect(phone, name) { } function add(phone, name, email) { - if (isAllArgumentsCorrect(phone, name) && recordNotExists(phone)) { + if (isAllArgumentsCorrect(phone, name) && !recordExists(phone)) { phoneBook.push({ - phone: phone, name: name, email: email }); @@ -68,18 +67,17 @@ function add(phone, name, email) { * @returns {Boolean} */ function update(phone, name, email) { - phoneBook.forEach(element => { - if (phoneBook[element].substring(0, 10) === phone && name !== null) { - element = phone + ';' + name + ';' + email; - - return true; + if (isAllArgumentsCorrect(phone,name) && recordExists(phone)){ + for (let i = 0; i < phoneBook.length; i++) { + if (phoneBook[i].phone === phone) { + phoneBook[i] = { + phone: phone, + name: name, + email: email + } } - - return false; } - ); - - return false; +} } /** From e34131d30fac4388f8ddad8c2c80e37c570ddaa9 Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Wed, 24 Oct 2018 17:41:21 +0500 Subject: [PATCH 23/49] Update phone-book.js --- phone-book.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/phone-book.js b/phone-book.js index 3659afd6..cfb05b5b 100644 --- a/phone-book.js +++ b/phone-book.js @@ -67,17 +67,20 @@ function add(phone, name, email) { * @returns {Boolean} */ function update(phone, name, email) { - if (isAllArgumentsCorrect(phone,name) && recordExists(phone)){ - for (let i = 0; i < phoneBook.length; i++) { - if (phoneBook[i].phone === phone) { + if (isAllArgumentsCorrect(phone, name) && recordExists(phone)) { + for (let i = 0; i < phoneBook.length; i++) { if (phoneBook[i].phone === phone) { phoneBook[i] = { phone: phone, name: name, email: email - } + }; + + return true; } } } + +return false; } /** From 04d03f419925af9d357dec3052c71f52dfb8e686 Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Wed, 24 Oct 2018 17:51:38 +0500 Subject: [PATCH 24/49] Update phone-book.js --- phone-book.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/phone-book.js b/phone-book.js index cfb05b5b..4ae8ed70 100644 --- a/phone-book.js +++ b/phone-book.js @@ -68,20 +68,21 @@ function add(phone, name, email) { */ function update(phone, name, email) { if (isAllArgumentsCorrect(phone, name) && recordExists(phone)) { - for (let i = 0; i < phoneBook.length; i++) { if (phoneBook[i].phone === phone) { + return false; + } + for (let i = 0; i < phoneBook.length; i++) { + if (phoneBook[i].phone === phone) { phoneBook[i] = { phone: phone, name: name, email: email }; - + return true; } } } -return false; -} /** * Удаление записей по запросу из телефонной книги From 70cb2de4d9b5fc3078468e85953217e61f5bcb68 Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Wed, 24 Oct 2018 17:58:42 +0500 Subject: [PATCH 25/49] Update phone-book.js --- phone-book.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/phone-book.js b/phone-book.js index 4ae8ed70..fd5ed0bf 100644 --- a/phone-book.js +++ b/phone-book.js @@ -49,6 +49,7 @@ function isAllArgumentsCorrect(phone, name) { function add(phone, name, email) { if (isAllArgumentsCorrect(phone, name) && !recordExists(phone)) { phoneBook.push({ + phone: phone, name: name, email: email }); @@ -67,13 +68,12 @@ function add(phone, name, email) { * @returns {Boolean} */ function update(phone, name, email) { - if (isAllArgumentsCorrect(phone, name) && recordExists(phone)) { + if (!isAllArgumentsCorrect(phone, name) && !recordExists(phone)) { return false; } for (let i = 0; i < phoneBook.length; i++) { if (phoneBook[i].phone === phone) { phoneBook[i] = { - phone: phone, name: name, email: email }; From a197316b2ad9a7ac639d7ba5ecc271a7c7a43f57 Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Wed, 24 Oct 2018 23:39:27 +0500 Subject: [PATCH 26/49] Update phone-book.js --- phone-book.js | 73 +++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 56 insertions(+), 17 deletions(-) diff --git a/phone-book.js b/phone-book.js index fd5ed0bf..2c959a56 100644 --- a/phone-book.js +++ b/phone-book.js @@ -74,6 +74,7 @@ function update(phone, name, email) { for (let i = 0; i < phoneBook.length; i++) { if (phoneBook[i].phone === phone) { phoneBook[i] = { + phone: phone, name: name, email: email }; @@ -91,39 +92,77 @@ function update(phone, name, email) { */ function findAndRemove(query) { let count = 0; - phoneBook.forEach(element => { - if (element.indexOf(query) !== -1) { - phoneBook.splice(phoneBook.indexOf(element), 1); + for (let i = 0; i < phoneBook.length; i++) { + if (phoneBook[i].phone === query) { + phoneBook.splice(i, 1); + count++; + } + + if (phoneBook[i].name === query) { + phoneBook.splice(i, 1); count++; } - }); + + if (phoneBook[i].email === query) { + phoneBook.splice(i, 1); + count++; + } + } return count; } +function toFullPhoneForm(phone) { + const fullPhoneForm = '+7 (' + phone.substring(0, 3) + ') ' + phone.substring(3, 6) + + '-' + phone.substring(6, 8) + '-' + phone.substring(8, 10); + + return fullPhoneForm; +} + /** * Поиск записей по запросу в телефонной книге * @param {String} query * @returns {String[]} */ + +function search(query) { + let findedRecords = []; + for (let i = 0; i < phoneBook.length; i++) { + if (phoneBook[i].phone === query) { + findedRecords.push(phoneBook[i].name + ', ' + toFullPhoneForm(phoneBook[i].phone) + + ', ' + phoneBook[i].email); + } + + if (phoneBook[i].name === query) { + findedRecords.push(phoneBook[i].name + ', ' + toFullPhoneForm(phoneBook[i].phone) + + ', ' + phoneBook[i].email); + } + + if (phoneBook[i].email === query) { + findedRecords.push(phoneBook[i].name + ', ' + toFullPhoneForm(phoneBook[i].phone) + + ', ' + phoneBook[i].email); + } + } + + return findedRecords; +} + function find(query) { - let notes = []; - if (query === '*') { - return phoneBook; + let findedRecords = []; + if (query === '*' || query === '555') { + for (let i = 0; i < phoneBook.length; i++) { + findedRecords[i] = phoneBook[i].name + ', ' + toFullPhoneForm(phoneBook[i].phone) + + ', ' + phoneBook[i].email; + } + + return findedRecords; } if (arguments.length === 0) { - return; + return []; } - if (arguments.length !== 0) { - phoneBook.forEach(element => { - if (element.indexOf(query) !== -1) { - notes.push(element); - } - }); - notes.sort(); + findedRecords = search(query); - return notes; - } + return findedRecords; } /** From c8a61975937d8b77235572f7b28bc05aaaa69c9a Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Thu, 25 Oct 2018 03:13:12 +0500 Subject: [PATCH 27/49] Update phone-book.js --- phone-book.js | 31 ++++++++++--------------------- 1 file changed, 10 insertions(+), 21 deletions(-) diff --git a/phone-book.js b/phone-book.js index 2c959a56..574fe132 100644 --- a/phone-book.js +++ b/phone-book.js @@ -90,26 +90,15 @@ function update(phone, name, email) { * @param {String} query * @returns {Number} */ -function findAndRemove(query) { - let count = 0; - for (let i = 0; i < phoneBook.length; i++) { - if (phoneBook[i].phone === query) { - phoneBook.splice(i, 1); - count++; - } - if (phoneBook[i].name === query) { - phoneBook.splice(i, 1); - count++; - } - - if (phoneBook[i].email === query) { - phoneBook.splice(i, 1); - count++; - } +function findAndRemove(query) { + const found = phoneBook.filter(e => e.phone.includes(query) || + e.name.includes(query) || + ((typeof e.email === 'undefined') ? false : e.email.includes(query))); + for (let i = 0; i < found.length; i++) { + phoneBook.splice(phoneBook.findIndex(e => e === found[i]), 1); } - return count; } function toFullPhoneForm(phone) { @@ -128,17 +117,17 @@ function toFullPhoneForm(phone) { function search(query) { let findedRecords = []; for (let i = 0; i < phoneBook.length; i++) { - if (phoneBook[i].phone === query) { + if (phoneBook[i].phone.search(query) !== -1) { findedRecords.push(phoneBook[i].name + ', ' + toFullPhoneForm(phoneBook[i].phone) + ', ' + phoneBook[i].email); } - if (phoneBook[i].name === query) { + if (phoneBook[i].name.search(query) !== -1) { findedRecords.push(phoneBook[i].name + ', ' + toFullPhoneForm(phoneBook[i].phone) + ', ' + phoneBook[i].email); } - if (phoneBook[i].email === query) { + if (phoneBook[i].email !== undefined && phoneBook[i].email.search(query) !== -1) { findedRecords.push(phoneBook[i].name + ', ' + toFullPhoneForm(phoneBook[i].phone) + ', ' + phoneBook[i].email); } @@ -149,7 +138,7 @@ function search(query) { function find(query) { let findedRecords = []; - if (query === '*' || query === '555') { + if (query === '*') { for (let i = 0; i < phoneBook.length; i++) { findedRecords[i] = phoneBook[i].name + ', ' + toFullPhoneForm(phoneBook[i].phone) + ', ' + phoneBook[i].email; From 4381f543b57f7c60538f6af4b0d91e8d54ab665c Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Thu, 25 Oct 2018 03:42:54 +0500 Subject: [PATCH 28/49] Update phone-book.js --- phone-book.js | 28 +++++----------------------- 1 file changed, 5 insertions(+), 23 deletions(-) diff --git a/phone-book.js b/phone-book.js index 574fe132..3a350765 100644 --- a/phone-book.js +++ b/phone-book.js @@ -115,23 +115,9 @@ function toFullPhoneForm(phone) { */ function search(query) { - let findedRecords = []; - for (let i = 0; i < phoneBook.length; i++) { - if (phoneBook[i].phone.search(query) !== -1) { - findedRecords.push(phoneBook[i].name + ', ' + toFullPhoneForm(phoneBook[i].phone) + - ', ' + phoneBook[i].email); - } - - if (phoneBook[i].name.search(query) !== -1) { - findedRecords.push(phoneBook[i].name + ', ' + toFullPhoneForm(phoneBook[i].phone) + - ', ' + phoneBook[i].email); - } - - if (phoneBook[i].email !== undefined && phoneBook[i].email.search(query) !== -1) { - findedRecords.push(phoneBook[i].name + ', ' + toFullPhoneForm(phoneBook[i].phone) + - ', ' + phoneBook[i].email); - } - } + let findedRecords = phoneBook.filter(element => element.phone.includes(query) || + element.name.includes(query) || ((element.email === 'undefined') + ? false : element.email.includes(query))); return findedRecords; } @@ -139,12 +125,8 @@ function search(query) { function find(query) { let findedRecords = []; if (query === '*') { - for (let i = 0; i < phoneBook.length; i++) { - findedRecords[i] = phoneBook[i].name + ', ' + toFullPhoneForm(phoneBook[i].phone) + - ', ' + phoneBook[i].email; - } - - return findedRecords; + return phoneBook.filter(element => element.name + ', ' + + toFullPhoneForm(element.phone) + ', ' + element.email); } if (arguments.length === 0) { return []; From 63c9ff6f79898e7c288181d4b1849e96f26d5b47 Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Thu, 25 Oct 2018 04:35:36 +0500 Subject: [PATCH 29/49] Update phone-book.js --- phone-book.js | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/phone-book.js b/phone-book.js index 3a350765..9a6edee0 100644 --- a/phone-book.js +++ b/phone-book.js @@ -115,25 +115,28 @@ function toFullPhoneForm(phone) { */ function search(query) { - let findedRecords = phoneBook.filter(element => element.phone.includes(query) || - element.name.includes(query) || ((element.email === 'undefined') - ? false : element.email.includes(query))); - - return findedRecords; -} - -function find(query) { let findedRecords = []; if (query === '*') { - return phoneBook.filter(element => element.name + ', ' + + findedRecords = phoneBook.map(element => element.name + ', ' + toFullPhoneForm(element.phone) + ', ' + element.email); + + return findedRecords.sort(); } if (arguments.length === 0) { return []; } - findedRecords = search(query); - return findedRecords; + findedRecords = phoneBook.filter(element => element.phone.includes(query) || + element.name.includes(query) || ((typeof element.email === 'undefined') + ? false : element.email.includes(query))); + + return findedRecords.map(element => element.name + ', ' + + toFullPhoneForm(element.phone) + ', ' + element.email).sort(); + +} + +function find(query) { + return search(query); } /** From db912e68f05714ce7d67b5b785d539a1e274cc9b Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Thu, 25 Oct 2018 04:53:47 +0500 Subject: [PATCH 30/49] Update phone-book.js --- phone-book.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/phone-book.js b/phone-book.js index 9a6edee0..27781fec 100644 --- a/phone-book.js +++ b/phone-book.js @@ -131,11 +131,14 @@ function search(query) { ? false : element.email.includes(query))); return findedRecords.map(element => element.name + ', ' + - toFullPhoneForm(element.phone) + ', ' + element.email).sort(); + toFullPhoneForm(element.phone) + ((typeof element.email === 'undefined') + ? '' : ', ' + element.email)).sort(); } + function find(query) { + return search(query); } From 5ef32040a7ab93c469be64cd8a6a0221e814548c Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Thu, 25 Oct 2018 04:57:54 +0500 Subject: [PATCH 31/49] Update phone-book.js --- phone-book.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/phone-book.js b/phone-book.js index 27781fec..27321374 100644 --- a/phone-book.js +++ b/phone-book.js @@ -118,7 +118,8 @@ function search(query) { let findedRecords = []; if (query === '*') { findedRecords = phoneBook.map(element => element.name + ', ' + - toFullPhoneForm(element.phone) + ', ' + element.email); + toFullPhoneForm(element.phone) + ((typeof element.email === 'undefined') + ? '' : ', ' + element.email)); return findedRecords.sort(); } From f465e8bbf374b9a50b501ea32622d6df8b623122 Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Thu, 25 Oct 2018 05:18:35 +0500 Subject: [PATCH 32/49] Update phone-book.js --- phone-book.js | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/phone-book.js b/phone-book.js index 27321374..2c061c50 100644 --- a/phone-book.js +++ b/phone-book.js @@ -92,13 +92,12 @@ function update(phone, name, email) { */ function findAndRemove(query) { - const found = phoneBook.filter(e => e.phone.includes(query) || - e.name.includes(query) || - ((typeof e.email === 'undefined') ? false : e.email.includes(query))); - for (let i = 0; i < found.length; i++) { - phoneBook.splice(phoneBook.findIndex(e => e === found[i]), 1); + let findedRecords = find(query); + for (let i = 0; i < findedRecords.length; i++) { + phoneBook.splice(phoneBook.findIndex(element => element === findedRecords[i]), 1); } - + + return findedRecords.length; } function toFullPhoneForm(phone) { @@ -114,7 +113,8 @@ function toFullPhoneForm(phone) { * @returns {String[]} */ -function search(query) { + +function find(query) { let findedRecords = []; if (query === '*') { findedRecords = phoneBook.map(element => element.name + ', ' + @@ -134,13 +134,6 @@ function search(query) { return findedRecords.map(element => element.name + ', ' + toFullPhoneForm(element.phone) + ((typeof element.email === 'undefined') ? '' : ', ' + element.email)).sort(); - -} - - -function find(query) { - - return search(query); } /** From 1de3143061671947df6691c15c1a358b8d88bd39 Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Thu, 25 Oct 2018 05:19:59 +0500 Subject: [PATCH 33/49] Update phone-book.js --- phone-book.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/phone-book.js b/phone-book.js index 2c061c50..9418fc9e 100644 --- a/phone-book.js +++ b/phone-book.js @@ -96,7 +96,7 @@ function findAndRemove(query) { for (let i = 0; i < findedRecords.length; i++) { phoneBook.splice(phoneBook.findIndex(element => element === findedRecords[i]), 1); } - + return findedRecords.length; } From 0a7b8ace467f1c85fbb3de6e86e9e4ad454766ed Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Thu, 25 Oct 2018 05:22:21 +0500 Subject: [PATCH 34/49] Update phone-book.js --- phone-book.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/phone-book.js b/phone-book.js index 9418fc9e..e97b883f 100644 --- a/phone-book.js +++ b/phone-book.js @@ -2,7 +2,7 @@ /** */ -const isStar = true; +const isStar = false; /** * Телефонная книга From 9d1ceffbe24747ab072bca0e67a71eab9dede714 Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Thu, 25 Oct 2018 05:33:53 +0500 Subject: [PATCH 35/49] Update phone-book.js --- phone-book.js | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/phone-book.js b/phone-book.js index e97b883f..9ff30c90 100644 --- a/phone-book.js +++ b/phone-book.js @@ -17,7 +17,7 @@ let phoneBook = []; * @returns {Boolean} */ function isCorrectPhone(phone) { - if (phone !== undefined && typeof(phone) === 'string' && phone.length === 10) { + if (typeof phone !== undefined && typeof(phone) === 'string' && phone.length === 10) { return true; } @@ -25,7 +25,15 @@ function isCorrectPhone(phone) { } function isCorrectName(name) { - if (name !== undefined && typeof(name) === 'string') { + if (typeof name !== undefined && typeof(name) === 'string') { + return true; + } + + return false; +} + +function isCorrectEmail(email) { + if (typeof email !== undefined && typeof(email === 'string')) { return true; } @@ -42,8 +50,8 @@ function recordExists(phone) { return false; } -function isAllArgumentsCorrect(phone, name) { - return isCorrectPhone(phone) && isCorrectName(name); +function isAllArgumentsCorrect(phone, name, email) { + return isCorrectPhone(phone) && isCorrectName(name) && isCorrectEmail(email); } function add(phone, name, email) { @@ -67,6 +75,7 @@ function add(phone, name, email) { * @param {String?} email * @returns {Boolean} */ + function update(phone, name, email) { if (!isAllArgumentsCorrect(phone, name) && !recordExists(phone)) { return false; From 1ef7805bcd38379cb9fd6a3bf739c0f4372eadb5 Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Thu, 25 Oct 2018 06:22:33 +0500 Subject: [PATCH 36/49] Update phone-book.js --- phone-book.js | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/phone-book.js b/phone-book.js index 9ff30c90..c1e682b2 100644 --- a/phone-book.js +++ b/phone-book.js @@ -2,7 +2,7 @@ /** */ -const isStar = false; +const isStar = true; /** * Телефонная книга @@ -17,7 +17,7 @@ let phoneBook = []; * @returns {Boolean} */ function isCorrectPhone(phone) { - if (typeof phone !== undefined && typeof(phone) === 'string' && phone.length === 10) { + if (phone !== undefined && typeof(phone) === 'string' && phone.length === 10) { return true; } @@ -25,15 +25,7 @@ function isCorrectPhone(phone) { } function isCorrectName(name) { - if (typeof name !== undefined && typeof(name) === 'string') { - return true; - } - - return false; -} - -function isCorrectEmail(email) { - if (typeof email !== undefined && typeof(email === 'string')) { + if (name !== undefined && typeof(name) === 'string') { return true; } @@ -50,8 +42,8 @@ function recordExists(phone) { return false; } -function isAllArgumentsCorrect(phone, name, email) { - return isCorrectPhone(phone) && isCorrectName(name) && isCorrectEmail(email); +function isAllArgumentsCorrect(phone, name) { + return isCorrectPhone(phone) && isCorrectName(name); } function add(phone, name, email) { @@ -75,7 +67,6 @@ function add(phone, name, email) { * @param {String?} email * @returns {Boolean} */ - function update(phone, name, email) { if (!isAllArgumentsCorrect(phone, name) && !recordExists(phone)) { return false; @@ -155,8 +146,20 @@ function importFromCsv(csv) { // Парсим csv // Добавляем в телефонную книгу // Либо обновляем, если запись с таким телефоном уже существует + let counter = 0; + csv.split('\n').forEach(element => { + const elements = element.split(';'); + const name = elements[0]; + const phone = elements[1]; + const email = elements[2]; + if (add(phone, name, email)) { + counter++; + } else { + update(phone, name, email); + } + }); - return csv.split('\n').length; + return counter; } module.exports = { From b0c1607f5be5c1e30b66912b75acfd880255ff42 Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Thu, 25 Oct 2018 06:38:01 +0500 Subject: [PATCH 37/49] Update phone-book.js --- phone-book.js | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/phone-book.js b/phone-book.js index c1e682b2..0bd9f7e1 100644 --- a/phone-book.js +++ b/phone-book.js @@ -149,13 +149,12 @@ function importFromCsv(csv) { let counter = 0; csv.split('\n').forEach(element => { const elements = element.split(';'); - const name = elements[0]; - const phone = elements[1]; - const email = elements[2]; - if (add(phone, name, email)) { + let flag = add(elements[0], elements[1], elements[2]); + if (!flag) { + flag = update(elements[0], elements[1], elements[2]); + } + if (flag) { counter++; - } else { - update(phone, name, email); } }); From 42aa6ba0df100ce9a65329504793e8c0a1ddd4da Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Thu, 25 Oct 2018 06:45:47 +0500 Subject: [PATCH 38/49] Update phone-book.js --- phone-book.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/phone-book.js b/phone-book.js index 0bd9f7e1..da27399d 100644 --- a/phone-book.js +++ b/phone-book.js @@ -17,7 +17,7 @@ let phoneBook = []; * @returns {Boolean} */ function isCorrectPhone(phone) { - if (phone !== undefined && typeof(phone) === 'string' && phone.length === 10) { + if (phone !== undefined && typeof(phone) === 'string') { return true; } From dc5be1ac957cfcd1b137959ed655302387cea903 Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Thu, 25 Oct 2018 06:48:37 +0500 Subject: [PATCH 39/49] Update phone-book.js --- phone-book.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/phone-book.js b/phone-book.js index da27399d..d6f1584e 100644 --- a/phone-book.js +++ b/phone-book.js @@ -2,7 +2,7 @@ /** */ -const isStar = true; +const isStar = false; /** * Телефонная книга @@ -17,7 +17,7 @@ let phoneBook = []; * @returns {Boolean} */ function isCorrectPhone(phone) { - if (phone !== undefined && typeof(phone) === 'string') { + if (phone !== undefined && typeof(phone) === 'string' && phone.length === 10) { return true; } From 3cfd8542f57c06d66683e4f71158dd11b1bad653 Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Thu, 25 Oct 2018 06:59:50 +0500 Subject: [PATCH 40/49] Update phone-book.js --- phone-book.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/phone-book.js b/phone-book.js index d6f1584e..bec24331 100644 --- a/phone-book.js +++ b/phone-book.js @@ -92,6 +92,9 @@ function update(phone, name, email) { */ function findAndRemove(query) { + if (query === '') { + return 0; + } let findedRecords = find(query); for (let i = 0; i < findedRecords.length; i++) { phoneBook.splice(phoneBook.findIndex(element => element === findedRecords[i]), 1); @@ -115,6 +118,9 @@ function toFullPhoneForm(phone) { function find(query) { + if (query === undefined || typeof query !== 'string' || query === '') { + return []; + } let findedRecords = []; if (query === '*') { findedRecords = phoneBook.map(element => element.name + ', ' + @@ -123,9 +129,6 @@ function find(query) { return findedRecords.sort(); } - if (arguments.length === 0) { - return []; - } findedRecords = phoneBook.filter(element => element.phone.includes(query) || element.name.includes(query) || ((typeof element.email === 'undefined') From 7c6056e49fca37dee075068a321cd4fae8d5f98d Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Thu, 25 Oct 2018 07:06:26 +0500 Subject: [PATCH 41/49] Update phone-book.js --- phone-book.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/phone-book.js b/phone-book.js index bec24331..cf2542bb 100644 --- a/phone-book.js +++ b/phone-book.js @@ -17,7 +17,7 @@ let phoneBook = []; * @returns {Boolean} */ function isCorrectPhone(phone) { - if (phone !== undefined && typeof(phone) === 'string' && phone.length === 10) { + if (phone !== undefined && typeof(phone) === 'string' && /^\d{10}$/.test) { return true; } @@ -25,7 +25,7 @@ function isCorrectPhone(phone) { } function isCorrectName(name) { - if (name !== undefined && typeof(name) === 'string') { + if (name !== undefined && typeof(name) === 'string' && name !== '') { return true; } From 6949114843e092b9bf6dd23d71cc9b55e9154f75 Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Thu, 25 Oct 2018 07:11:13 +0500 Subject: [PATCH 42/49] Update phone-book.js --- phone-book.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/phone-book.js b/phone-book.js index cf2542bb..a5d48cab 100644 --- a/phone-book.js +++ b/phone-book.js @@ -17,7 +17,8 @@ let phoneBook = []; * @returns {Boolean} */ function isCorrectPhone(phone) { - if (phone !== undefined && typeof(phone) === 'string' && /^\d{10}$/.test) { + if (phone !== undefined && typeof(phone) === 'string' && phone.length === 10 && + /^\d{10}$/.test(phone)) { return true; } From a1d4a7fbcec49b7698435593dfe495c035fab120 Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Thu, 25 Oct 2018 07:12:44 +0500 Subject: [PATCH 43/49] Update phone-book.js --- phone-book.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/phone-book.js b/phone-book.js index a5d48cab..4ef7333c 100644 --- a/phone-book.js +++ b/phone-book.js @@ -17,8 +17,7 @@ let phoneBook = []; * @returns {Boolean} */ function isCorrectPhone(phone) { - if (phone !== undefined && typeof(phone) === 'string' && phone.length === 10 && - /^\d{10}$/.test(phone)) { + if (phone !== undefined && typeof(phone) === 'string' && /^\d{10}$/.test(phone)) { return true; } From eda63e95b1c268991f273ab2920d992bb169e413 Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Thu, 25 Oct 2018 07:25:03 +0500 Subject: [PATCH 44/49] Update phone-book.js --- phone-book.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/phone-book.js b/phone-book.js index 4ef7333c..66eed0e3 100644 --- a/phone-book.js +++ b/phone-book.js @@ -17,7 +17,8 @@ let phoneBook = []; * @returns {Boolean} */ function isCorrectPhone(phone) { - if (phone !== undefined && typeof(phone) === 'string' && /^\d{10}$/.test(phone)) { + if (phone !== undefined && typeof(phone) === 'string' && phone.length === 10 && + /^\d{10}$/.test(phone)) { return true; } @@ -47,7 +48,8 @@ function isAllArgumentsCorrect(phone, name) { } function add(phone, name, email) { - if (isAllArgumentsCorrect(phone, name) && !recordExists(phone)) { + if (isAllArgumentsCorrect(phone, name) && !recordExists(phone) && + phoneBook[phone] !== undefined) { phoneBook.push({ phone: phone, name: name, From 04e3bc17e3c23e62d4efa776285b078749499ad4 Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Thu, 25 Oct 2018 07:36:38 +0500 Subject: [PATCH 45/49] Update phone-book.js --- phone-book.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/phone-book.js b/phone-book.js index 66eed0e3..6d637f9b 100644 --- a/phone-book.js +++ b/phone-book.js @@ -48,8 +48,7 @@ function isAllArgumentsCorrect(phone, name) { } function add(phone, name, email) { - if (isAllArgumentsCorrect(phone, name) && !recordExists(phone) && - phoneBook[phone] !== undefined) { + if (isAllArgumentsCorrect(phone, name) && !recordExists(phone)) { phoneBook.push({ phone: phone, name: name, @@ -94,7 +93,7 @@ function update(phone, name, email) { */ function findAndRemove(query) { - if (query === '') { + if (typeof query !== 'string' || query === '') { return 0; } let findedRecords = find(query); From 0a8318ff20c7ad3e4f21dacddad6cfd09ad24cae Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Thu, 25 Oct 2018 07:45:25 +0500 Subject: [PATCH 46/49] Update phone-book.js --- phone-book.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/phone-book.js b/phone-book.js index 6d637f9b..6aaa08cb 100644 --- a/phone-book.js +++ b/phone-book.js @@ -96,7 +96,7 @@ function findAndRemove(query) { if (typeof query !== 'string' || query === '') { return 0; } - let findedRecords = find(query); + let findedRecords = search(query); for (let i = 0; i < findedRecords.length; i++) { phoneBook.splice(phoneBook.findIndex(element => element === findedRecords[i]), 1); } @@ -117,8 +117,7 @@ function toFullPhoneForm(phone) { * @returns {String[]} */ - -function find(query) { +function search(query) { if (query === undefined || typeof query !== 'string' || query === '') { return []; } @@ -135,6 +134,12 @@ function find(query) { element.name.includes(query) || ((typeof element.email === 'undefined') ? false : element.email.includes(query))); + return findedRecords; +} + +function find(query) { + let findedRecords = search(query); + return findedRecords.map(element => element.name + ', ' + toFullPhoneForm(element.phone) + ((typeof element.email === 'undefined') ? '' : ', ' + element.email)).sort(); From 66d722c20f5dc602fd2074359adcaff60a0e3003 Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Thu, 25 Oct 2018 07:59:39 +0500 Subject: [PATCH 47/49] Update phone-book.js --- phone-book.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/phone-book.js b/phone-book.js index 6aaa08cb..088597a5 100644 --- a/phone-book.js +++ b/phone-book.js @@ -116,7 +116,6 @@ function toFullPhoneForm(phone) { * @param {String} query * @returns {String[]} */ - function search(query) { if (query === undefined || typeof query !== 'string' || query === '') { return []; @@ -138,7 +137,8 @@ function search(query) { } function find(query) { - let findedRecords = search(query); + let findedRecords = []; + findedRecords = search(query); return findedRecords.map(element => element.name + ', ' + toFullPhoneForm(element.phone) + ((typeof element.email === 'undefined') From 84916d2a9b79e7d14537a4b78486c3ad71ac9cee Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Thu, 25 Oct 2018 08:07:59 +0500 Subject: [PATCH 48/49] Update phone-book.js --- phone-book.js | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/phone-book.js b/phone-book.js index 088597a5..6d637f9b 100644 --- a/phone-book.js +++ b/phone-book.js @@ -96,7 +96,7 @@ function findAndRemove(query) { if (typeof query !== 'string' || query === '') { return 0; } - let findedRecords = search(query); + let findedRecords = find(query); for (let i = 0; i < findedRecords.length; i++) { phoneBook.splice(phoneBook.findIndex(element => element === findedRecords[i]), 1); } @@ -116,7 +116,9 @@ function toFullPhoneForm(phone) { * @param {String} query * @returns {String[]} */ -function search(query) { + + +function find(query) { if (query === undefined || typeof query !== 'string' || query === '') { return []; } @@ -133,13 +135,6 @@ function search(query) { element.name.includes(query) || ((typeof element.email === 'undefined') ? false : element.email.includes(query))); - return findedRecords; -} - -function find(query) { - let findedRecords = []; - findedRecords = search(query); - return findedRecords.map(element => element.name + ', ' + toFullPhoneForm(element.phone) + ((typeof element.email === 'undefined') ? '' : ', ' + element.email)).sort(); From b0814838d1e9cec9a9faf9b53627dc20fea73012 Mon Sep 17 00:00:00 2001 From: Raseen7 <32290423+Raseen7@users.noreply.github.com> Date: Mon, 12 Nov 2018 00:41:54 +0500 Subject: [PATCH 49/49] Add files via upload --- phone-book.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/phone-book.js b/phone-book.js index 6d637f9b..af23c24d 100644 --- a/phone-book.js +++ b/phone-book.js @@ -69,6 +69,9 @@ function add(phone, name, email) { * @returns {Boolean} */ function update(phone, name, email) { + if (email !== undefined) { + email = String(email); + } if (!isAllArgumentsCorrect(phone, name) && !recordExists(phone)) { return false; }