Уменьшить

Сегодняшний день посвящается моему маленькому другу Редукту. Уменьшить, и у меня отношения любви-ненависти. Сначала я презирал, когда меня унижали. Это смутило меня. Это не имело абсолютно никакого смысла. Но со временем я начал понимать магию Reduce и его силу. Теперь у меня проблемы с тем, чтобы не использовать сокращение, так как оно настолько универсально. Обычно существует лучший, более прямой метод, который можно использовать в большинстве случаев.

Reduce — это метод итератора массива. Reduce будет принимать массив в качестве входных данных и выводить то, что известно как «аккумулятор» (acc). Это волшебство заключается в этом аккумуляторе. Этот аккумулятор может быть любым типом данных, а не только массивом. Это означает, что мы можем вывести целое число, строку, логическое значение, массив или объект! Супер полезно.

В приведенном ниже примере у нас есть массив чисел. Мы определяем новую переменную, назначенную методу сокращения. Сокращение использует arrayOfNumbers и принимает 2 параметра; акк и текущий номер. Мы знаем, что такое «акк». Итак, что такое 2-й параметр? Этот параметр является семантическим представлением текущего индекса в оцениваемом массиве. Поскольку мы знаем, что работаем с массивом чисел, я назову эту переменную currentNumber.

Затем мы переходим к логике внутри сокращения. Каждое отдельное число в arrayOfNumbers будет оцениваться с помощью этой логики. Наш currentNumber будет помещен в аккумулятор только в том случае, если его остаток строго равен 1, что делает его нечетным числом. Как только сокращение достигает конца массиваOfNumbers, оно останавливается и возвращает этот результат в переменную AllOddNumbers.

Теперь у нас есть все нечетные числа из исходного массива ~ волшебство!