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

Но благодаря стечению обстоятельств — переезду в Канаду, рынку труда в танке и моему брату-музыканту, знакомому с одним из основателей Operation Spark, учебного лагеря по JavaScript, я оказался в NOLA и начал видеть элегантность и креативность в написании функциональных JS.

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

В своем первом сообщении в блоге я собираюсь погрузиться в одну из моих любимых функций высшего порядка: reduce() — она применяет функцию к функции обратного вызова накопителя и каждому значению массива. Это уменьшит его до одного значения.

Но эта функция гораздо более универсальна, и я предпочитаю использовать ее по сравнению с другими функциями HO, такими как each(), filter() или map(). Вы можете получить те же результаты с гораздо меньшим количеством строк кода.

Пример набора данных — Массив объектов с несколькими парами ключ-значение.

Скажем, вас попросили узнать количество мужчин и женщин в данных. Что ж, похоже, метод reduce() может найти ответ всего в 4 строчках кода. Вы можете передать объект с начальными ключами и значениями для первого аргумента при первом вызове функции обратного вызова.

Средний возраст данных? Передайте ноль в качестве начального значения и бинго-банго…

Поскольку мой день сейчас заканчивается около полуночи, у меня есть одна заключительная полуосознанная мысль — из-за Hack Reactor я вижу сны со скоростью 1,8X.

/A

код.