¿Cómo usar el método reduce de Javascript?

| Última modificación: 21 de junio de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

En JavaScript, existen muchos métodos que nos permiten acceder a los elementos de un array, ya sea para analizarlos o para manipularlos. Dentro de estas funciones, el método reduce nos permite manipular un array para obtener un único valor como resultado. En este post, te enseñaremos cómo utilizar el método reduce de JavaScript en contextos prácticos y avanzados.

método reduce de Javascript?

¿Qué es el método reduce de Javascript?

El método reduce de JavaScript nos permite, como su nombre indica, reducir el array insertado a un solo valor. Esta reducción se da a partir de una función reduce que insertamos como parámetro. Es decir, para ejecutar este método usaremos un callback. Además, insertaremos un valor inicial para crear la secuencia de reducción.

El callback que pasamos a reduce recibe cuatro parámetros:

  • accumulated: El acumulador que lleva el resultado de la reducción.
  • currentValue: El valor actual del array que se está procesando.
  • index (opcional): El índice del elemento actual que se está procesando.
  • array (opcional): El array completo sobre el que se está aplicando reduce.

Si quieres saber más sobre este método, te invitamos a leer nuestro artículo sobre qué es el método reduce en Javascript.

Importancia del valor inicial

Al utilizar el método reduce de JavaScript, es importante insertar primero el parámetro de valor inicial. Aunque este parámetro va después del callback, te recomendamos abrir el paréntesis e, inmediatamente, insertar la coma y, después, el valor inicial. Esto ayuda a evitar errores y asegura que la función se ejecute como se espera.

const totalGoals = footballLeague.teams.reduce((accumulated, currentValue) => {
return accumulated + currentValue.goalsFor;
}, 0);

console.log(Total goals are ${totalGoals});

En este ejemplo, hemos definido que la función reduce empiece con el valor 0 y luego va sumando progresivamente el valor de la propiedad goalsFor de cada equipo. El método recorre el array y suma el valor de esta propiedad de cada elemento del array para devolvernos un único valor final.

Cómo utilizar el método reduce de JavaScript

Ejemplo básico

Supongamos que estamos programando un proyecto en el que debemos crear una liga de fútbol. Cuando queramos crear la tabla de clasificación para definir al ganador, necesitaremos programar una acción que acumule los goles metidos por cada equipo para conocer el número total de goles metidos durante la liga.

const totalGoals = footballLeague.teams.reduce((accumulated, currentValue) => {
return accumulated + currentValue.goalsFor;
}, 0);

console.log(`Total goals are ${totalGoals}`);

Ejemplo con objetos y strings

const names = ['Alice', 'Bob', 'Charlie'];
const concatenatedNames = names.reduce((acc, name) => acc + ', ' + name);
console.log(concatenatedNames); // "Alice, Bob, Charlie"

Tratamiento de errores comunes

Uno de los errores comunes al usar reduce es olvidar el valor inicial, lo cual puede llevar a resultados inesperados. Siempre es recomendable proporcionar un valor inicial.

Comparación con otros métodos

reduce es muy potente, pero a veces otros métodos como map, filter, o forEach pueden ser más apropiados según la tarea específica. Aquí hay una breve comparación:

  • map: Transforma cada elemento de un array.
  • filter: Filtra elementos de un array.
  • forEach: Ejecuta una función para cada elemento de un array.

Para grandes volúmenes de datos, es importante considerar el rendimiento. reduce puede ser optimizado usando técnicas como la programación en paralelo si el entorno lo permite.

Aplicaciones avanzadas

Agrupación de datos

const people = [
{ name: 'Alice', age: 21 },
{ name: 'Bob', age: 25 },
{ name: 'Charlie', age: 21 }
];

const groupedByAge = people.reduce((acc, person) => {
if (!acc[person.age]) {
acc[person.age] = [];
}
acc[person.age].push(person);
return acc;
}, {});

console.log(groupedByAge);

El método reduce de JavaScript es una herramienta extremadamente poderosa para manejar y manipular arrays, permitiendo operaciones complejas con facilidad y eficiencia. Aprender a usar reduce correctamente puede mejorar significativamente la calidad y eficiencia de tu código.

¿Qué sigue?

Ahora que sabes cómo utilizar el método reduce de JavaScript en contextos más prácticos, puedes ver que aprender a programar es mucho más fácil con la práctica. Por ello, te invitamos a formar parte del Desarrollo Web Full Stack Bootcamp, donde encontrarás la mezcla perfecta entre teoría y práctica. ¡Te convertirás en un experto en desarrollo web en pocos meses! ¡No lo dudes más e inscríbete!

Alberto Casero

Alberto Casero es CTO en Watium, Fundador de Kas Factory & Coordinador del Bootcamp en Desarrollo Web.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Desarrollo Web

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado