Skip to content

Commit 68820b0

Browse files
authored
Merge pull request mouredev#7008 from 7R0N1X/main
#22 - JavaScript
2 parents c1af6cd + fa7a77a commit 68820b0

File tree

1 file changed

+67
-0
lines changed
  • Roadmap/22 - FUNCIONES DE ORDEN SUPERIOR/javascript

1 file changed

+67
-0
lines changed
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
const frutas = ['Manzana', 'Banana', 'Fresa', 'Uva', 'Mango', 'Pera', 'Kiwi', 'Durazno', 'Sandía', 'Naranja', 'Cereza']
2+
3+
const crearFiltroPorLetra = (letra) => {
4+
return function (fruta) {
5+
return fruta.startsWith(letra)
6+
}
7+
}
8+
9+
const filtrarPorM = crearFiltroPorLetra('M')
10+
const frutasConM = frutas.filter(filtrarPorM)
11+
12+
console.log(frutasConM)
13+
14+
// DIFICULTAD EXTRA
15+
const estudiantes = [
16+
{ nombres: 'Eduardo Molina', fechaNacimiento: '1999-08-30', calificaciones: [10, 8, 9, 10] },
17+
{ nombres: 'Lucía Torres', fechaNacimiento: '2001-05-15', calificaciones: [9, 7, 8, 10] },
18+
{ nombres: 'Carlos Jiménez', fechaNacimiento: '2000-11-22', calificaciones: [6, 9, 8, 7] },
19+
{ nombres: 'Ana Pérez', fechaNacimiento: '1998-12-10', calificaciones: [10, 10, 9, 8] },
20+
{ nombres: 'Juan Rodríguez', fechaNacimiento: '2002-04-05', calificaciones: [7, 6, 7, 8] },
21+
{ nombres: 'María López', fechaNacimiento: '2000-03-18', calificaciones: [8, 9, 10, 9] },
22+
{ nombres: 'Sofía García', fechaNacimiento: '1999-09-12', calificaciones: [9, 8, 8, 9] },
23+
{ nombres: 'Miguel Castro', fechaNacimiento: '2003-01-25', calificaciones: [6, 7, 6, 7] },
24+
{ nombres: 'Laura Fernández', fechaNacimiento: '2001-06-30', calificaciones: [10, 9, 9, 10] },
25+
{ nombres: 'Andrés Martínez', fechaNacimiento: '2002-02-14', calificaciones: [8, 8, 7, 8] }
26+
]
27+
28+
const obtenerPromedio = (estudiante) => {
29+
const { nombres, calificaciones } = estudiante
30+
const promedio = calificaciones.reduce((acumulador, nota) => acumulador + nota / calificaciones.length, 0)
31+
return {
32+
nombres,
33+
promedio
34+
}
35+
}
36+
37+
const mejoresEstudiantes = (estudiante) => {
38+
const { nombres, promedio } = estudiante
39+
if (promedio >= 9) {
40+
return { nombres }
41+
}
42+
}
43+
44+
const ordenarFechaNacimiento = (estudianteA, estudianteB) => {
45+
return new Date(estudianteB.fechaNacimiento) - new Date(estudianteA.fechaNacimiento)
46+
}
47+
48+
const calificacionMasAlta = (estudiante) => {
49+
const { nombres, calificaciones } = estudiante
50+
const calificacionAlta = Math.max(...calificaciones)
51+
return {
52+
nombres,
53+
calificacionAlta
54+
}
55+
}
56+
57+
const promedios = estudiantes.map(obtenerPromedio)
58+
console.log(promedios)
59+
60+
const mejoresNotas = promedios.filter(mejoresEstudiantes)
61+
console.log(mejoresNotas)
62+
63+
const estudiantesPorFechaNacimiento = estudiantes.sort(ordenarFechaNacimiento)
64+
console.log(estudiantesPorFechaNacimiento)
65+
66+
const calificacionMasAltaPorEstudiante = estudiantes.map(calificacionMasAlta)
67+
console.log(calificacionMasAltaPorEstudiante)

0 commit comments

Comments
 (0)