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

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

Рассмотрим следующий массив:

Параметры, принимаемые методом уменьшения массива: аккумулятор, элемент, индекс и сам массив в этот порядок. Аккумулятор накапливает возвращаемые значения обратного вызова. Важно отметить, что у аккумулятора должно быть начальное значение, которое объявляется вне тела функции.

Давайте посмотрим, как мы должны передать эти 4 параметра в дополнение к вычислению суммы всех элементов в массиве:

В приведенном выше примере мы хотим начать счет с 0, поэтому значение аккумулятора установлено на 0.

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

Ниже приведен результат возвращаемого значения метода сокращения на консоли:

Действительно, когда вы складываете все элементы массива myNumbers, вы получаете в сумме 1035.

Теперь вам может быть интересно, почему вы выбрали этот метод вместо цикла for? Начнем с написания цикла for для вычисления суммы всех элементов в нашем массиве myNumbers.

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

Вы можете заметить, что в цикле for нам нужна внешняя переменная (счетчик), а не метод сокращения. Это нормально, если вы работаете с одним циклом, но это может стать очень запутанным, если мы работаем с несколькими циклами для выполнения нескольких операций. Методы массива полностью избегают дополнительной переменной (count) при работе с несколькими циклами, выполняющими разные операции.

Теперь, рассмотрев метод уменьшения массива, давайте выполним цепочку как для фильтра, так и для метода уменьшения массива.

Предположим, что из нашего массива (myNumbers) мы хотим найти сумму всех положительных чисел в массиве. Вот как мы это сделаем:

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

Действительно, если сложить все положительные числа массива myNumbers, получится 1285.