@@ -47,18 +47,25 @@ function sumNumbers(numbers) {
4747
4848// Iteration #3.1
4949const mixedArr = [ 6 , 12 , 'miami' , 1 , true , 'barca' , '200' , 'lisboa' , 8 , 10 ] ;
50- const sanitizedArr = [ ] ;
50+
5151function sum ( mixedArr ) {
52+ const sanitizedArr = [ ] ;
5253 if ( mixedArr . length === 0 ) {
5354 return 0 ;
5455 }
5556 for ( let i = 0 ; i < mixedArr . length ; i ++ ) {
56- if ( typeof mixedArr [ i ] === 'string' ) {
57- sanitizedArr . push ( mixedArr [ i ] . length ) ;
58- } else if ( typeof mixedArr [ i ] === 'boolean' ) {
59- sanitizedArr . push ( + mixedArr [ i ] ) ;
60- } else if ( typeof mixedArr [ i ] === 'number' ) {
61- sanitizedArr . push ( mixedArr [ i ] ) ;
57+ switch ( typeof mixedArr [ i ] ) {
58+ case 'string' :
59+ sanitizedArr . push ( mixedArr [ i ] . length ) ;
60+ break ;
61+ case 'boolean' :
62+ sanitizedArr . push ( + mixedArr [ i ] ) ;
63+ break ;
64+ case 'number' :
65+ sanitizedArr . push ( mixedArr [ i ] ) ;
66+ break ;
67+ default :
68+ return 'Data type not supported' ;
6269 }
6370 }
6471 return sumNumbers ( sanitizedArr ) ;
@@ -96,6 +103,31 @@ function averageWordLength(wordsArr) {
96103 return averageNumbers ( wordsArrLength ) ;
97104}
98105
106+ //Bonus #4.1
107+ //const mixedArr = [6, 12, 'miami', 1, true, 'barca', '200', 'lisboa', 8, 10];
108+ function avg ( mixedArr ) {
109+ const numberArr = [ ] ;
110+ if ( mixedArr . length === 0 ) {
111+ return null ;
112+ }
113+ for ( let i = 0 ; i < mixedArr . length ; i ++ ) {
114+ switch ( typeof mixedArr [ i ] ) {
115+ case 'string' :
116+ numberArr . push ( mixedArr [ i ] . length ) ;
117+ break ;
118+ case 'boolean' :
119+ numberArr . push ( + mixedArr [ i ] ) ;
120+ break ;
121+ case 'number' :
122+ numberArr . push ( mixedArr [ i ] ) ;
123+ break ;
124+ default :
125+ return 'error' ;
126+ }
127+ }
128+ return averageNumbers ( numberArr ) ;
129+ }
130+
99131// Iteration #5: Unique arrays
100132const wordsUnique = [
101133 'crab' ,
0 commit comments