tgoop.com/prog_way_blog/110
Last Update:
Итерирование по сущностям: filter
Код из примеров очень сложно читать в самом Telegram из-за его размера, так что все примеры для простоты я перенёс в телеграф.
Ранее я уже рассматривал методы итерирования по массиву map и reduce. Предлагаю дополнить этот список методом filter
.
1. filter
возвращает новый массив без изменения старого
2. Параметром принимает callback
, который должен вернуть значение типа boolean
или значение, которое будет преобразовано к boolean
, например пустую строку
3. В новый массив попадут все значения, для которых функция callback вернула значение, подобное true
Например, необходимо получить список всех положительных чётных чисел из списка (пример 1)
Или из списка customers
нужно получить всех покупателей, которые подтвердили свой аккаунт (пример 2)
В результате получим два искомых покупателя. То есть из объекта даже можно возвращать одно из полей, не применяя к нему никаких вычислений.
Полная сигнатура метода: filter(function callback(element, index, array) { ... }, thisArg)
Где callback
- функция, а thisArg
- значение, которое будет использовано как this
в callback
функции.
И filter
, как метод, можно использовать в цепочке, тем самым оформляя решения крайне читабельно и красиво, например:
Написать функцию, которая на вход получает массив слов, а возвращает общую длину всех слов палиндромов. Пример сказочный, но допустим (пример 3)
Комбинацией трёх этих методов мы реализуем функцию, которая даст нам правильный ответ.
Чаще всего хватает одного метода или комбинации двух из трёх методов. Эта задача усложнена намеренно, чтобы оправдать использование трёх методов сразу. И даже эту задачу можно решить лишь с использованием filter
и reduce
, map
тут избыточен.
Есть еще много способов итерации по сущностям, например те же разные виды цикла for
. Их я разберу чуть позже. Ну а пока, спасибо за прочтение, это важно для меня ❤️
#javascript #web #theory #useful
BY progway — программирование, IT

Share with your friend now:
tgoop.com/prog_way_blog/110