В этой статье мы рассмотрим метод уменьшения массива и выполним цепочку этого метода и метода фильтра. Нажмите здесь, чтобы взглянуть на метод массива фильтров, если вы не знакомы с ним.
Мы используем метод сокращения, чтобы сузить все элементы массива до одного единственного значения. Например, мы можем захотеть найти сумму всех элементов в массиве.
Рассмотрим следующий массив:
Параметры, принимаемые методом уменьшения массива: аккумулятор, элемент, индекс и сам массив в этот порядок. Аккумулятор накапливает возвращаемые значения обратного вызова. Важно отметить, что у аккумулятора должно быть начальное значение, которое объявляется вне тела функции.
Давайте посмотрим, как мы должны передать эти 4 параметра в дополнение к вычислению суммы всех элементов в массиве:
В приведенном выше примере мы хотим начать счет с 0, поэтому значение аккумулятора установлено на 0.
В консоли будет вывод:
Ниже приведен результат возвращаемого значения метода сокращения на консоли:
Действительно, когда вы складываете все элементы массива myNumbers, вы получаете в сумме 1035.
Теперь вам может быть интересно, почему вы выбрали этот метод вместо цикла for? Начнем с написания цикла for для вычисления суммы всех элементов в нашем массиве myNumbers.
И вывод на консоли будет:
Вы можете заметить, что в цикле for нам нужна внешняя переменная (счетчик), а не метод сокращения. Это нормально, если вы работаете с одним циклом, но это может стать очень запутанным, если мы работаем с несколькими циклами для выполнения нескольких операций. Методы массива полностью избегают дополнительной переменной (count) при работе с несколькими циклами, выполняющими разные операции.
Теперь, рассмотрев метод уменьшения массива, давайте выполним цепочку как для фильтра, так и для метода уменьшения массива.
Предположим, что из нашего массива (myNumbers) мы хотим найти сумму всех положительных чисел в массиве. Вот как мы это сделаем:
Вывод на консоли будет:
Действительно, если сложить все положительные числа массива myNumbers, получится 1285.