JavaScript de Cero a Experto / Objetos
Reto: Mi Bolsillo v2, gastos con nombre propio
En el módulo 4 analizaste gastos que eran solo números. Hoy "Mi Bolsillo" crece a su versión 2: cada gasto es un OBJETO con nombre, valor y categoría, y tu análisis combina todo el módulo — spread, destructuring, Set, JSON — con los métodos de array que ya dominas.
Reto
Mi Bolsillo v2
Qué debes construir
Partiendo de este array de gastos:
const gastos = [
{ nombre: "Almuerzo", valor: 18000, categoria: "comida" },
{ nombre: "Bus", valor: 5800, categoria: "transporte" },
{ nombre: "Café", valor: 4500, categoria: "comida" },
{ nombre: "Cine", valor: 25000, categoria: "ocio" },
{ nombre: "Mercado", valor: 92000, categoria: "comida" },
];Produce exactamente esta salida:
Total del mes: 160300
Comida: Almuerzo, Café, Mercado (114500)
Gasto más caro: Mercado (92000)
Categorías: comida, transporte, ocio
{
"totalMes": 160300,
"totalComida": 114500,
"masCaro": "Mercado",
"categorias": [
"comida",
"transporte",
"ocio"
]
}
Requisitos:
- Agrega un gasto (Taxi, 15000, transporte) con SPREAD, creando un
array
todos— sin mutargastos. - Total del mes:
reducesobretodos, con DESTRUCTURING en el callback ((acum, { valor }) => ...). - Análisis de comida: filtra la categoría
"comida", saca los nombres conmap+ destructuring, y su total conreduce. - El más caro: un
reduceque compare objetos completos y devuelva el gasto ganador (necesitas su nombre Y su valor). - Categorías únicas:
mappara extraerlas + el truco delSet. - Resumen final: arma un objeto
resumencontotalMes,totalComida, el nombre del más caro y las categorías, e imprímelo conJSON.stringify(resumen, null, 2).
Reglas
- Nada de bucles a mano: métodos de array con destructuring en los callbacks.
gastosno se muta en ningún punto (compruébalo al final si dudas).- Las categorías únicas salen del Set — no las escribas a mano.
25:00
Cuando estés listo, arranca el reloj.
Qué sigue
Módulo 5 cerrado: tus datos ya tienen estructura de verdad — objetos con
propiedades, métodos, copias seguras y viaje en JSON. El módulo 6 baja al
detalle de los VALORES: dominar los strings (plantillas, métodos), los
números (formateo colombiano con Intl), las fechas con Date, y una
herramienta legendaria para buscar patrones en texto: las expresiones
regulares.