Sobes.tech
Back to questions
Middle+
4

Почему выбрал объект для хранения подписчиков? Как работает отписка через filter? Какая сложность алгоритма у filter?

Companies where asked
BetBoom

Answer from AI

sobes.tech AI

Объект выбран для хранения подписчиков, потому что он обеспечивает быстрый доступ к подписчикам по ключу (например, ID или имени события). Это позволяет эффективно добавлять, удалять и искать подписчиков без необходимости обходить весь список.

Отписка через метод filter работает так: у вас есть массив подписчиков, и вы создаёте новый массив, в который попадают только те подписчики, которые не равны тому, от которого хотите отписаться. Таким образом, подписчик удаляется из массива.

Пример:

let subscribers = [fn1, fn2, fn3];
// Отписка fn2
subscribers = subscribers.filter(fn => fn !== fn2);

Сложность алгоритма filter — O(n), где n — количество элементов в массиве, так как метод проходит по всем элементам, проверяя условие.

Таким образом, отписка через filter — это операция линейной сложности, что может быть неэффективно при большом количестве подписчиков.