Найти тему
JavaСкриптизёр

Гайд Array.reduce() JavaScript

Оглавление
Array.reduce() метод
Array.reduce() метод

В JavaScript есть множество стандартных и полезных методов, многими из которых программисты любят пренебрегать, а зря! Здесь я хочу разобрать крайней интересный и полезный метод массивов - reduce().

Метод Array.reduce () "сокращает" массив до одного значения, вычисляет один результат на основании всех элементов в массиве. Метод reduce() принимает одну функцию в качестве первого аргумента и одно начальное значение в качестве второго необязательного аргумента. Функция выполняется для каждого элемента массива и возвращает значение, которое дополнительно предоставляется в качестве первого аргумента (accumulator) для следующего вызова функции.

array.reduce(reducerFunction, initialValue);

reducerFunction принимает два обязательных аргумента: accumulator и currentValue. Accumulator - это либо начальное значение, либо ранее возвращенное значение. Второй аргумент - это значение текущего элемента.

function reducerFunction(accumulator, currentValue, currentIndex, array) {}

reducerFunction также принимает два необязательных аргумента - currentIndex и array. CurrentIndex - это индекс currentValue в массиве, а последний необязательный аргумент - это массив, для которого был вызван метод reduce().

Как работает метод reduce ()

Давайте попробуем суммировать все значения в массиве.

Итак, функция reducerFunction вызывается в первый раз с аргументами 25 и 48 и возвращает 73. В следующий раз функция reducerFunction вызывается с ранее возвращенным значением 73 и следующим элементом 13 и возвращает 86.

Мы можем проверить, сколько раз вызывалась функция reducerFunction и значения её аргументов, выводя промежуточные результаты с помощью console.log.

Вывод в консоли будет выглядеть следующим образом:

25 48
73 13

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

Вывод в консоли:

0 25
25 48
73 13
86

Давайте посмотрим еще несколько примеров использования метода reduce().

Ещё примеры

Найти максимальное и минимальное число в массиве

Если у нас есть массив чисел, то мы можем найти как максимальное, так и минимальное число, сравнивая каждые числа массива попарно.

Почти так же мы можем найти минимальное число:

Преобразовать массив в объект

Предположим, у нас есть массив объектов студентов. У каждого студента есть имя и баллы за семестр.

Теперь мы хотим создать один объект из массива с именами студентов в качестве ключей и их баллами в качестве значений. Давайте посмотрим, как это сделать с помощью reduce().

В консоли будет вот такой вывод:

{
Joey: 41,
Monica: 83,
Ross: 92,
Rachel: 51,
Chandler: 76,
Pheobe: 45
}

Заключение

Я хочу сказать, что JavaScript это безусловно прекрасный язык, по крайней мере для меня. И в своём арсенале он имеет огромное количество классных методов и функций, многими из которых, к сожалению, программисты любят пренебрегать, хотя делать этого не стоит. Напротив стоит выучить стандартные методы JS и использовать их, ведь как мы видим на примере reduce(), они сокращают объем кода и делают его более элегантным и читаемым.

Спасибо за просмотр, если вам понравилась статья, можете оценить её пальцем вверх и написать комментарий.
Если вы хотите больше подобного контента, то приглашаю вас перейти на мой канал и посмотреть множество других статей по JavaScript, а также подписаться, чтобы не пропустить новых публикаций, которые выходят на канале почти каждый день.

Наука
7 млн интересуются