@@ -30,30 +30,71 @@ console.log(arr.customMap((n) => n * 2));
30
30
*/
31
31
32
32
let myStudents = [ ] ;
33
+ let bestStudents = [ ] ;
33
34
34
35
class Student {
35
- constructor ( name , grades , date , month , year ) {
36
+ constructor ( name , grades , birthDate ) {
36
37
this . name = name ;
37
38
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 ( ) ;
40
42
myStudents . push ( this ) ;
43
+
44
+ if ( this . getAverage ( ) >= 9 ) {
45
+ bestStudents . push ( this ) ;
46
+ }
41
47
}
42
48
43
49
getAverage ( ) {
44
50
let result = 0 ;
45
51
this . grades . forEach ( ( element ) => {
46
52
result = result + element ;
47
53
} ) ;
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 ;
49
64
}
50
65
}
51
66
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
+ } ) ;
56
97
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 } ` ) ;
59
100
} ) ;
0 commit comments