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()); const longWords = words.filter(word => word.length > 4).map(word => word.toUpperCase());
console.log(longWords); console.log(longWords);
/* /*
7. Escribir una función `agrupar` que reciba un array de objetos con la forma 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` `{ nombre, aprobado }` y retorne un objeto con dos propiedades: `aprobados`
y `desaprobados`, cada una con un array de nombres. y `desaprobados`, cada una con un array de nombres.
*/ */
const resultados = [ const results = [
{ nombre: "Ana", aprobado: true }, { name: "Ana", passed: true },
{ nombre: "Luis", aprobado: false }, { name: "Luis", passed: false },
{ nombre: "Marta", aprobado: true }, { name: "Marta", passed: true },
{ nombre: "Carlos", aprobado: false } { name: "Carlos", passed: false }
]; ];
// Resultado esperado: // Resultado esperado:
@@ -124,6 +123,17 @@ const resultados = [
// desaprobados: ["Luis", "Carlos"] // 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 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, número `base` y retorne una función que, al llamarla con otro número,