Среди трех методов массива — Map, Filter и Reduce — самый запутанный метод.
Но сегодня я разобью его и упрощу для вас.
Синтаксис
reduce((previousValue, currentValue) => { } )
Давайте сначала проанализируем синтаксис.
постоянные числа = [1, 2, 3, 4, 5]
Уменьшение принимает два параметра: предыдущее значение и текущее значение. В приведенном выше примере предыдущее значение становится равным 1. Текущее значение становится равным 2, возвращаемое значение становится равным 3 и так далее.
Для справки проверьте изображение ниже.
Но проблема с приведенным выше синтаксисом заключается в том, что он выдает ошибку, если массив пуст.
Мы можем предотвратить это, передав начальное значение следующим образом:
reduce((previousValue, currentValue) => { }, initialValue )
Вы можете оставить начальное значение равным 0. В этом случае предыдущее значение станет равным 0, а текущее значение будет равно 1.
Если массив пуст и вы указываете начальное значение, он возвращает начальное значение без ошибки.
Полный синтаксис:
Метод сокращения принимает четыре параметра вместо двух. Но в большинстве случаев для получения результатов достаточно двух параметров.
Но полный синтаксис может быть полезен в определенных ситуациях.
reduce((previousValue, currentValue, currentIndex, array) => { }, initialValue)
Факты:
- Функция сокращения работает только с массивами.
- Он уменьшает массив до одного значения.
- Он не работает с пустыми массивами.
- Вы можете называть параметры как угодно. Например, (prev, curr), (acc, curr) (a, b), (x, y) и т. д. Но убедитесь, что вы понимаете, что они представляют.
Примеры:
Пример 1: добавление массива
Пример 2: вычитание массива
Здесь я опустил начальное значение, потому что оно изменяет результат массива. Например, если я оставлю начальное значение равным нулю, результат будет следующим:
Но, если вам нужно вычесть массив из некоторого значения, укажите его в качестве начального значения.
Примечание. Вы можете использовать пустой массив вместо начального значения, чтобы избежать ошибки типа.
Пример 3: Умножение массива
Здесь вместо 0 используйте 1, потому что 0, умноженный на что-либо, равен нулю. Начальное значение просто здесь, чтобы избежать ошибки, если массив пуст.
Итак, убедитесь, что вы понимаете, как работает массив с начальным значением или без него.
Функция для вычисления факториала числа:
Вот пример с циклом for:
Вот пример с рекурсивной функцией (мы узнаем, что это такое в следующих статьях)
Заключительные слова:
Подводя итог, сокращение работает только с массивами и возвращает одно значение.
Надеюсь, вы понимаете, как работает сокращение и когда его использовать.
Следите за этой статьей, я обновлю ее, когда найду что-нибудь интересное о методе сокращения.
Если вы дочитали до этого момента, рассмотрите возможность подписки на мою рассылку, чтобы получать статьи, подобные этой.
Первоначально опубликовано на https://codingkiran.hashnode.dev.