Domina los métodos de orden superior en JavaScript con ejemplos claros y aplicables. Aquí verás cómo find, filter y reduce resuelven necesidades distintas: buscar un solo elemento, obtener múltiples coincidencias o acumular resultados con un acumulador. Con prácticas de código limpias y nombres descriptivos en la arrow function, tu lectura y mantenimiento mejorarán al instante.
¿Qué hace find y en qué se diferencia de filter?
find devuelve el primer elemento que cumple la condición. filter devuelve un arreglo con todas las coincidencias. Esta distinción es clave cuando solo necesitas un resultado frente a una colección.
- find retorna un único elemento que coincide.
- Si no hay coincidencia, find retorna undefined.
- filter retorna todas las coincidencias en un array.
- Si no hay coincidencias, filter retorna un array vacío.
- Usa nombres descriptivos en la arrow function para claridad: mejor nota que n.
¿Cómo se ve el código con find y un id?
Ejecuta la búsqueda por id con una condición estricta.
// Buscar la nota con id 2
const nota = notas3.find(nota => nota.id === 2);
console.log(nota);
- Devuelve solo la nota cuyo id sea 2.
- La comparación estricta === evita resultados ambiguos.
¿Cómo funciona reduce con un acumulador?
reduce ejecuta una función reductora sobre cada elemento y acumula en un resultado final. Un caso típico es sumar los valores de un arreglo.
const numeros = [1, 2, 3, 4, 5];
const suma = numeros.reduce((acc, n) => acc + n, 0);
console.log(suma); // 15
- La función recibe el acumulador acc y el valor actual n.
- El valor inicial del acumulador es 0, por eso el total es 15.
¿Qué cambia con el valor inicial del acumulador?
Cambiar el valor inicial impacta el resultado final de forma directa.
const numeros = [1, 2, 3, 4, 5];
const sumaDesdeDiez = numeros.reduce((acc, n) => acc + n, 10);
console.log(sumaDesdeDiez); // 25
- Con un inicio en 10, la suma final es 25.
- El patrón se mantiene: acc + n en cada iteración.
¿Cómo aplicar reduce para contar notas por categoría?
El reto propuesto es claro: contar cuántas notas existen por cada categoría usando reduce sobre un arreglo más robusto de notas. La idea es transformar una lista en un objeto de conteos por categoría.
- Recorre cada nota y toma su categoría.
- Actualiza el conteo acumulado para esa categoría.
- Empieza con un objeto vacío como acumulador.
- Comparte tu solución en comentarios para apoyar a la comunidad.
¿Tienes otra forma de resolverlo o una variación interesante con arrow functions y condiciones más complejas? Compártelo en los comentarios y enriquezcamos juntos el aprendizaje.