D

Хочу заверстать подобный список городов, но со строкой поиска. Планирую каждую букву отдельным блоком. Блок, буква, список.
Вопрос как лучше проводить фильтрацию? В голову только приходит мысль, при вводе текста в строку поиска проверять каждый вариант на совпадение и после этого проверять есть ли в списке этой буквы отображённые варианты. Если да, то оставлять заголовочную букву. Если нет, то скрывать её.
Может посоветуете более "элегантный" вариант?