¿Te acuerdas de tu ficha? 🪪
En el mini-proyecto de "Tu perfil en números" modelaste a una persona y calculaste su edad. Funcionaba, pero las apps de verdad no manejan a uno: manejan listas. Una tienda tiene muchos productos; una red social, muchos usuarios; un equipo, muchas personas.
Hoy tu app crece: das el salto de una ficha a un equipo entero.
La idea: un array de objetos
Si una persona es un objeto...
const persona = { nombre: "Ana", nacimiento: 2000 };
...un equipo es un array de objetos:
const equipo = [
{ nombre: "Ana", nacimiento: 2000 },
{ nombre: "Beto", nacimiento: 1990 },
{ nombre: "Caro", nacimiento: 2010 },
];
Esta estructura —una lista de fichas— es el pan de cada día de cualquier
programador. Y ya tienes las herramientas para domarla: map para transformar,
filter para elegir y reduce para resumir.
Lo construirás pieza a pieza
edad→ la edad de una persona (tu vieja amiga, ahora con objetos).nombres→ la lista de nombres del equipo (conmap).edadMedia→ la edad media de todo el equipo (conreduce).resumen→ junta todo en un informe del equipo.
🚩 Checkpoint 2 de 4. Ya gestionas un equipo entero en la consola. Más adelante le pondrás cara en React y, al final, un backend full-stack (base de datos + API). Tu proyecto, creciendo paso a paso.
Míralo funcionando primero
Pulsa Ejecutar abajo para ver el informe terminado. Lo construirás en los ejercicios. 👇
Ejemplos
El informe del equipo — pulsa Ejecutar
const equipo = [
{ nombre: "Ana", nacimiento: 2000 },
{ nombre: "Beto", nacimiento: 1990 },
{ nombre: "Caro", nacimiento: 2010 },
];
function edad(p, anio) { return anio - p.nacimiento; }
function edadMedia(eq, anio) {
return eq.reduce((acc, p) => acc + edad(p, anio), 0) / eq.length;
}
function resumen(eq, anio) {
const lineas = eq
.map((p) => "- " + p.nombre + ": " + edad(p, anio) + " años")
.join("\n");
return "👥 EQUIPO (" + eq.length + ")\n" + lineas +
"\nEdad media: " + edadMedia(eq, anio);
}
console.log(resumen(equipo, 2026));