|
| 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