Jorge Jimenez
May 24, 2017 · 5 min read

El método reduce() aplica una función a un acumulador y a cada valor de una array (de izquierda a derecha) para reducirlo a un único valor.

Más claro imposible, con esto terminamos el escrito y estoy seguro ya te sentirás un maestro usando la función reduce(). Bueno, en realidad la primera vez que leí este concepto no lo entendí. Soy honesto, quizás mi coeficiente intelectual no esta la altura, pero en fin, mis felicitaciones a todos aquellos que con solo leerlo ya saben que hacer.
Para todos aquellos que se identifican conmigo vamos a ver unos ejemplos que nos permitan entender más a fondo como emplear esta función. El primero de ellos el más clásico de los ejemplo:

Suma de elementos de un array
const suma = [10, 20, 30].reduce(function(a, b){return a + b});
Contador de nombres en un aula de clases
// Primera ejecución
1.- contadorNombre = {} // Objecto vacío
2.- nombre = Jorge // Primer elemento del array
3.- {Jorge: 1}
4.- Se retorna el objecto existen -> {Jorge: 1}
5.- contadorNombre = {Jorge: 1} // Se repite el ciclo
Encadenando funciones
const _pipe = (f, g) => (...args) => g(f(...args));
const ejemplo = _pipe(suma, dobla);
const resultadoEjemplo = ejemplo(3);
console.log(resultadoEjemplo); // 8
  1. Luego estas serán pasadas una a una y luego invocadas.
  2. Primero se invoca suma y retornará 3 + 1 = 4
  3. El valor de 4 será pasado a la siguiente función, en nuestro caso dobla()
  4. El resultado será 4 * 2 = 8
const pipe = (...fns) => fns.reduce(_pipe); 
const funcionesMixtas = pipe(dobla, suma, triplica);
const resultado = funcionesMixtas(3)

Conclusión

La función reduce() permite lograr objetivos que generalmente de manera estructurada cuestan un poco de trabajo lograr. El dominio de este tipo de funciones nos permitirán logra una código más limpio y mucho más fácil de leer. Es cierto que a veces vemos ejemplos que por su complejidad parecen muy difíciles de replicar o aprender, en todo caso te invito a seguir practicando y poco a poco te aseguro que lograrás comprender hasta el mas complejo de los ejemplos, después de todo como dicen por allí, la práctica hace al maestro.

Jorge Jimenez

Written by

Software Developer, Chess Player and my family is my treasure.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade