@@ -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 } ${ highestAverage . average }  
90+ ) ; 
91+ 
92+ console . log ( myStudents . find ( ( element )  =>  element . name  ===  'David' ) ) ; 
93+ 
94+ myStudents . customMap ( ( element )  =>  { 
95+ 	console . log ( `\nEl promedio de ${ element . name } ${ 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