Задача «Телефонная книга»
Перед выполнением задания внимательно прочитайте:
- О всех этапах проверки задания
- Как отправить пулл
- Как пройти тесты
- Правила оформления javascript, HTML и CSS кода
- Лекцию «Типы данных»
Основное задание
Мы очень хотим, чтобы код вы написали сами, а не пользовались внешними библиотеками.
Как известно, каждый уважающий себя разработчик должен в жизни сделать три вещи:
- посадить DOM дерево
- построить абстракцию
-
выраститьнаписать телефонную книгу
Предлагаем вам пройти легкий путь становления уважающего себя разработчика и реализовать для скрипта телефонной книги 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 и в тестах.