Перед выполнением задания внимательно прочитайте:
- О всех этапах проверки задания
- Как отправить пулл
- Как пройти тесты
- Правила оформления javascript, HTML и CSS кода
Мы очень хотим, чтобы код вы написали сами, а не пользовались внешними библиотеками.
Аркадий – серьезный человек и в его телефонной книге очень много записей. А после недавнего престижного соревнования по JavaScript
, записей станет еще больше.
Пользоваться рукописной книгой уже не модно, поэтому Аркадий решил обратиться к вам, как к специалисту по телефонным книгам и JavaScript
.
Предлагаем вам помочь Аркадию мигрировать на новые технологии и реализовать для скрипта телефонной книги phone-book.js ряд необходимых методов.
Метод add для добавления записей:
- На вход принимает «Телефон», «Имя» и «Электронную почту»
- Возвращает true или false в зависимости от успеха опереации
- Телефоны принимаются только в формате 5556667788 (без кода)
- Не добавляет уже существующую запись
- Не добавляет запись без имени
Метод update для обновления записей:
- На вход принимает «Телефон», «Имя» и «Электронную почту»
- Обновляет «Имя» и «Электронную почту» по заданному «Телефону»
- Возвращает true или false в зависимости от успеха опереации
- «Электронную почту» можно стереть (не передав последний параметр), а «Имя» – нет
Метод find для поиска записей:
- На вход принимает запрос в виде строки
- Ищет вхождение этой строки хотя бы в одно из полей «Телефон», «Имя» и «Электронную почту»
- Возвращает отсортированный по «Имени» массив строк в формате
name, phone, email
- «Имя» и «Электронную почту» выводит как есть, а «Телефон» в формате
+7 (555) 666-77-88
- Пустой запрос не должен ничего находить
- Запрос «*» находит все записи
Метод findAndRemove для удаления записей:
- На вход принимает запрос в виде строки
- Находит (смотри find) и удаляет все найденные записи
- Возвращает число удаленных записей
В файле index.js вы можете найти примеры использования получившегося скриптика.
Перед выполнением внимательно прочитайте про особенности
По одной добавлять записи в книгу не очень удобно, поэтому будет здорово, если вы добавите в решение импорт данных из csv. Для этого реализуйте код метода importFromCsv.
На вход метод принимает строку в формате csv. Если запись в телефонной книги уже есть – обновляет/дополняет её данными из csv строки. На выходе метод возвращает одно число добавленных/обновленных записей.
Пример работы этого метода вы может отыскать в index.js и в тестах.