feat: refactor results structure and implement agrouping function for student approval status

This commit is contained in:
2026-05-04 20:45:16 -03:00
parent faca545cdc
commit 3be7d0cac3

View File

@@ -105,17 +105,16 @@ const words = ["sol", "tormenta", "mar", "lluvia", "río", "arcoíris"];
const longWords = words.filter(word => word.length > 4).map(word => word.toUpperCase());
console.log(longWords);
/*
7. Escribir una función `agrupar` que reciba un array de objetos con la forma
`{ nombre, aprobado }` y retorne un objeto con dos propiedades: `aprobados`
y `desaprobados`, cada una con un array de nombres.
*/
const resultados = [
{ nombre: "Ana", aprobado: true },
{ nombre: "Luis", aprobado: false },
{ nombre: "Marta", aprobado: true },
{ nombre: "Carlos", aprobado: false }
const results = [
{ name: "Ana", passed: true },
{ name: "Luis", passed: false },
{ name: "Marta", passed: true },
{ name: "Carlos", passed: false }
];
// Resultado esperado:
@@ -124,6 +123,17 @@ const resultados = [
// desaprobados: ["Luis", "Carlos"]
// }
const agroupedResults = results.reduce((acc, result) => {
if (result.passed) {
acc.passed.push(result.name);
} else {
acc.failed.push(result.name);
}
return acc;
}, { passed: [], failed: [] });
console.log(agroupedResults);
/*
8. *(Opcional - closures)* Escribir una función `crearSumador` que reciba un
número `base` y retorne una función que, al llamarla con otro número,