Л А Б О Р А Т О Р И Я

актуальных

РЕШЕНИЙ


JavaScript FILTER - TEST

решение тестовой задачи на JavaScript

Получил по запросу от одной компании тестовую задачу, чтобы прокачать свои текущие навыки, и понять уровень требований на рынке по моей специализации.

Описание задачи:

Задание JavaScript

Размышления над реализацией:

  1. Непонятна необходимость использования сторонней библиотеки JQuery, если задача достаточно легко может быть реализована на чистом JavaScript. Задачу немного усложним, реализуем дополнительно возможность добавления новых адресов зданий в список на странице.
  2. Для реализации необходимо создать форму ввода символов по которым будем отфильтровывать список (см. строки 121-125 HTML кода). В случае нашей усложненной задачи, необходимо добавить еще одну форму (см. строки 133-137 HTML кода), в которой будем вводить новые названия адресов зданий.
  3. Также для усложнения задачи, скроем кнопку "Очистить" формы фильтра (см. строку 124 HTML кода) средствами стилей (CSS), и будем ее показывать после ввода символов в поле ввода (см. строку 123 HTML кода).
  4. Чтобы формы стали доступны для ввода символов только после загрузки страницы, т.е. полного списка 1000+, как указано в условии, блокируем первоначальное состояние форм средствами CSS, и открываем доступ к формам после загрузки всего контента страницы (см. функция activeInputs файл JS).
  5. Отслеживание введенных символов в поле ввода фильтра (см. функция inputFilter файл JS) происходит с отсечением пробелов в начале и конце введенного текста (см. строку 45 JS файла).
  6. Когда поле ввода фильтра пусто, то скрываем кнопку "Очистить" (см. строку 44 JS файла), очищать нечего.
  7. Если количество символов в поле ввода фильтра меньше 2, то показываем весь список на странице (см. строки 49-52 JS файла).
  8. После ввода второго и последующих символов происходит отфильтровка списка (см. строки 56-61 JS файла), не подходящие под условие строки скрываются.
  9. При нажатии на кнопку "Очистить" (см. строки 15-21 JS файла) происходит очистка поля ввода, скрывается кнопка, и показываются все строки списка.
  10. Для добавления нового адреса необходимо ввести не менее 3 символов (пробелы в начале и конце отсекаются) в поле ввода формы добавления и нажать кнопку "Добавить" (см. строки 29-34 JS файла).

Файл с кодом Javascript:

Text JavaScript

Код HTML c формами ввода и фильтруемым списком:

Text HTML

Вот такая итоговая реализация получилась:

Тестовая 11 Верхняя сторожка 15 Северная башня Проспект Верховязова 12 Новый бульвар 45

Удачи в разработке!



другие материалы: