Если вы похожи на меня, вы выросли, используя классический цикл for в js.

У меня нет жалоб. Он хорошо работает, его легко реализовать, за ним легко следить, а ваш код легко читается.

Почему бы кому-то не использовать цикл for, спросите вы?

Потому что это нарушает простые конструкции нашего всеми любимого принципа D.R.Y (Не повторяйся)!

Ладно, может быть, у меня есть одна жалоба.

Подумайте об этом, сколько раз вы делаете цикл for с одинаковыми именами переменных?

Это повторяется!

Введите функции высшего порядка.

Проще говоря,

Функция высшего порядка – это функция, которой передается другая функция в качестве параметра.

По сути, это уменьшает количество шаблонов, необходимых в вашем коде.

Мы рассмотрим две распространенные реализации функций высшего порядка.

Массив.прототип.карта()

Соблюдайте ванильный синтаксис.

Длинный, уродливый, неэффективный и склонный к синтаксическим ошибкам.

Позвольте мне показать вам ту же функцию с методом карты.

Красиво правда?

Он делает то же самое, только без головной боли, связанной с управлением всеми зависимыми переменными. Так намного проще!

Массив.прототип.фильтр()

Следующая остановка у нас есть фильтр. Какой ummm фильтрует массив. Да, я знаю, очень описательный.

Будучи функцией высшего порядка, она принимает функцию в качестве параметра. Эта функция будет использоваться для определения того, что возвращается. Ниже я сделал простую многоразовую функцию для возврата всех четных чисел из массива.

Как видите, мы передаем функцию `(num) =› num % 2 === 0`

Легче думать об этих функциях передачи с точки зрения sudo-кода.

Если вы застряли, я рекомендую сказать это вслух ^

Вот та же функция, использующая цикл for.

Опять головная боль.

В заключение,

функции более высокого порядка не являются универсальной альтернативой. скорее, это способ избавить себя от набора текста. Это очень полезный инструмент, который нужно иметь на поясе. На усмотрение вас, как проницательного разработчика, внедрить при необходимости.