@@ -30,30 +30,71 @@ console.log(arr.customMap((n) => n * 2));
3030 */
3131
3232let myStudents = [ ] ;
33+ let bestStudents = [ ] ;
3334
3435class Student {
35- constructor ( name , grades , date , month , year ) {
36+ constructor ( name , grades , birthDate ) {
3637 this . name = name ;
3738 this . grades = grades ;
38- let birthDateNoFormat = new Date ( year , month - 1 , date ) ;
39- this . birthDate = birthDateNoFormat . toLocaleString ( ) ;
39+ this . birthDate = birthDate ;
40+ this . age = this . getAge ( ) ;
41+ this . average = this . getAverage ( ) ;
4042 myStudents . push ( this ) ;
43+
44+ if ( this . getAverage ( ) >= 9 ) {
45+ bestStudents . push ( this ) ;
46+ }
4147 }
4248
4349 getAverage ( ) {
4450 let result = 0 ;
4551 this . grades . forEach ( ( element ) => {
4652 result = result + element ;
4753 } ) ;
48- return result / this . grades . length ;
54+ let average = result / this . grades . length ;
55+ return average ;
56+ }
57+
58+ getAge ( ) {
59+ let now = new Date ( ) ;
60+ let age = Math . floor (
61+ ( now . getTime ( ) - this . birthDate . getTime ( ) ) / ( 365 * 24 * 60 * 60 * 1000 )
62+ ) ;
63+ return age ;
4964 }
5065}
5166
52- new Student ( 'Sophie' , [ 8 , 8 , 7 , 9 ] , 12 , 11 , 2004 ) ;
53- new Student ( 'David' , [ 7 , 6 , 9 , 8 ] , 23 , 1 , 2005 ) ;
54- new Student ( 'Eliezer' , [ 4 , 6 , 7 , 5 ] , 21 , 2 , 2005 ) ;
55- new Student ( 'Rebeca' , [ 8 , 9 , 10 , 9 ] , 16 , 5 , 2005 ) ;
67+ new Student ( 'Sophie' , [ 8 , 8 , 7 , 9 ] , new Date ( 2002 , 8 , 21 ) ) ;
68+ new Student ( 'David' , [ 7 , 6 , 9 , 8 ] , new Date ( 2003 , 0 , 15 ) ) ;
69+ new Student ( 'Eliezer' , [ 4 , 6 , 7 , 5 ] , new Date ( 2005 , 1 , 21 ) ) ;
70+ new Student ( 'Rebeca' , [ 8 , 9 , 10 , 9 ] , new Date ( 2001 , 4 , 16 ) ) ;
71+ new Student ( 'Robert' , [ 10 , 10 , 10 , 9 ] , new Date ( 2002 , 0 , 16 ) ) ;
72+
73+ function getHighestAverage ( ) {
74+ let result ;
75+ let average = 0 ;
76+ bestStudents . forEach ( ( element ) => {
77+ if ( element . getAverage ( ) > average ) {
78+ result = element ;
79+ }
80+ } ) ;
81+ return result ;
82+ }
83+
84+ let highestAverage = getHighestAverage ( ) ;
85+
86+ function sortByAge ( ) { }
87+
88+ console . log (
89+ `\n${ highestAverage . name } ha obtenido el mayor promedio de la clase: ${ highestAverage . average } \n`
90+ ) ;
91+
92+ console . log ( myStudents . find ( ( element ) => element . name === 'David' ) ) ;
93+
94+ myStudents . customMap ( ( element ) => {
95+ console . log ( `\nEl promedio de ${ element . name } es de ${ element . average } ` ) ;
96+ } ) ;
5697
57- myStudents . forEach ( ( element ) => {
58- console . log ( `\nEl promedio de ${ element . name } es de ${ element . getAverage ( ) } ` ) ;
98+ myStudents . customMap ( ( element ) => {
99+ console . log ( `\nEl nacimiento de ${ element . name } fue el ${ element . birthDate } ` ) ;
59100} ) ;
0 commit comments