Skip to content

Commit b851a8e

Browse files
#22-javascript
1 parent c1eda30 commit b851a8e

File tree

1 file changed

+82
-0
lines changed

1 file changed

+82
-0
lines changed
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
/*
2+
* EJERCICIO:
3+
* Explora el concepto de funciones de orden superior en tu lenguaje
4+
* creando ejemplos simples (a tu elección) que muestren su funcionamiento.
5+
*
6+
* DIFICULTAD EXTRA (opcional):
7+
* Dada una lista de estudiantes (con sus nombres, fecha de nacimiento y
8+
* lista de calificaciones), utiliza funciones de orden superior para
9+
* realizar las siguientes operaciones de procesamiento y análisis:
10+
* - Promedio calificaciones: Obtiene una lista de estudiantes por nombre
11+
* y promedio de sus calificaciones.
12+
* - Mejores estudiantes: Obtiene una lista con el nombre de los estudiantes
13+
* que tienen calificaciones con un 9 o más de promedio.
14+
* - Nacimiento: Obtiene una lista de estudiantes ordenada desde el más joven.
15+
* - Mayor calificación: Obtiene la calificación más alta de entre todas las
16+
* de los alumnos.
17+
* - Una calificación debe estar comprendida entre 0 y 10 (admite decimales).
18+
*/
19+
20+
const devolverFuncion = () => {
21+
22+
const sum = (num1, num2) => num1 + num2;
23+
24+
return sum;
25+
}
26+
27+
const funcionDevuelta = devolverFuncion();
28+
29+
console.log(funcionDevuelta(1, 1));
30+
31+
console.log('----------DIFICULTAD EXTRA---------');
32+
33+
let estudiantes = [
34+
{
35+
nombre: 'Grace',
36+
fechaNacimiento: '27/07/1999',
37+
calificaciones: [10, 9, 8]
38+
},
39+
{
40+
nombre: 'Cate',
41+
fechaNacimiento: '12/08/1999',
42+
calificaciones: [9, 6]
43+
},
44+
{
45+
nombre: 'Valeria',
46+
fechaNacimiento: '24/04/2007',
47+
calificaciones: [9.9, 7]
48+
},
49+
];
50+
51+
const getExpediente = (calcularPromedio, getMejoresEstudiantes, getNacimiento, getMayorNota) => {
52+
53+
console.log(calcularPromedio());
54+
console.log('Mejores estudiantes', getMejoresEstudiantes());
55+
}
56+
57+
const calcularPromedio = () => {
58+
let promedios = {};
59+
60+
estudiantes.forEach(estudiante => {
61+
let suma = 0;
62+
estudiante.calificaciones.forEach(cal => suma += cal);
63+
let promedio = suma / estudiante.calificaciones.length;
64+
65+
let nombre = estudiante.nombre;
66+
promedios[nombre] = promedio;
67+
});
68+
69+
return promedios;
70+
}
71+
72+
const getMejoresEstudiantes = () => {
73+
const promedios = calcularPromedio();
74+
75+
const promediosArray = Object.entries(promedios);
76+
const mejoresEstudiantes = promediosArray.filter(([nombre, promedio]) => promedio > 9);
77+
const resultado = Object.fromEntries(mejoresEstudiantes);
78+
79+
return resultado;
80+
}
81+
82+
getExpediente(calcularPromedio, getMejoresEstudiantes);

0 commit comments

Comments
 (0)