@@ -66,6 +66,8 @@ function sumNumbers(arrOfNums) {
66
66
return sum ;
67
67
}
68
68
69
+ sumNumbers ( numbers ) ;
70
+
69
71
//or with for of loop:
70
72
71
73
// function sumNumbers(arrOfNums) {
@@ -77,24 +79,49 @@ function sumNumbers(arrOfNums) {
77
79
// return sum;
78
80
// }
79
81
82
+ //Iteration #3 BONUS:
80
83
81
-
82
-
83
- sumNumbers ( numbers ) ;
84
+ function sum ( arr ) {
85
+ if ( arr . length === 0 ) {
86
+ return 0 ;
87
+ } else {
88
+ let total = 0 ;
89
+ for ( let i = 0 ; i < arr . length ; i ++ ) {
90
+ let element = arr [ i ] ;
91
+ console . log ( element ) ;
92
+ if ( element === 0 ) {
93
+ return 0 ;
94
+ } else if ( typeof element === "number" ) {
95
+ total += element ;
96
+ } else if ( typeof element === "string" ) {
97
+ total += element . length ;
98
+ } else if ( typeof element === "boolean" ) {
99
+ total += Number ( element ) ;
100
+ } else {
101
+ throw new Error ( "Unsupported data type sir or ma'am" ) ;
102
+ }
103
+ }
104
+ // for (let i = 0; i < arr.length; i++) {
105
+ // total += arr[i];
106
+ // console.log(total);
107
+ // }
108
+ return total ;
109
+ }
110
+ }
84
111
85
112
// Iteration #4: Calculate the average
86
113
// Level 1: Array of numbers
87
114
const numbersAvg = [ 2 , 6 , 9 , 10 , 7 , 4 , 1 , 9 ] ;
88
115
89
116
function averageNumbers ( arrOfNums ) {
90
117
if ( arrOfNums . length === 0 ) return null ;
91
- let sum = 0 ;
92
- let average ;
93
- for ( let i = 0 ; i < arrOfNums . length ; i ++ ) {
94
- sum += arrOfNums [ i ] ;
95
- average = sum / arrOfNums . length ;
96
- }
97
- return average ;
118
+ let sum = 0 ;
119
+ let average ;
120
+ for ( let i = 0 ; i < arrOfNums . length ; i ++ ) {
121
+ sum += arrOfNums [ i ] ;
122
+ average = sum / arrOfNums . length ;
123
+ }
124
+ return average ;
98
125
}
99
126
100
127
averageNumbers ( numbersAvg ) ;
@@ -115,16 +142,15 @@ const wordsArr = [
115
142
116
143
function averageWordLength ( arrOfWords ) {
117
144
if ( arrOfWords . length === 0 ) return null ;
118
-
145
+
119
146
let total = 0 ;
120
- for ( let i = 0 ; i < arrOfWords . length ; i ++ ) {
121
- let word = arrOfWords [ i ] ;
122
- total += word . length ;
123
- console . log ( "total" , total ) ;
124
- }
125
- let average = total / arrOfWords . length ;
126
- return average ;
127
-
147
+ for ( let i = 0 ; i < arrOfWords . length ; i ++ ) {
148
+ let word = arrOfWords [ i ] ;
149
+ total += word . length ;
150
+ console . log ( "total" , total ) ;
151
+ }
152
+ let average = total / arrOfWords . length ;
153
+ return average ;
128
154
}
129
155
130
156
averageWordLength ( wordsArr ) ;
@@ -146,16 +172,16 @@ const wordsUnique = [
146
172
147
173
function uniquifyArray ( array ) {
148
174
if ( array . length === 0 ) return null ;
149
-
175
+
150
176
let newArr = [ ] ;
151
- for ( let i = 0 ; i < array . length ; i ++ ) {
152
- let currentWord = array [ i ] ;
153
- console . log ( "currentWord" , currentWord ) ;
154
- if ( newArr . indexOf ( currentWord ) < 0 ) {
155
- newArr . push ( currentWord ) ;
156
- }
177
+ for ( let i = 0 ; i < array . length ; i ++ ) {
178
+ let currentWord = array [ i ] ;
179
+ console . log ( "currentWord" , currentWord ) ;
180
+ if ( newArr . indexOf ( currentWord ) < 0 ) {
181
+ newArr . push ( currentWord ) ;
157
182
}
158
- return newArr ;
183
+ }
184
+ return newArr ;
159
185
}
160
186
161
187
uniquifyArray ( wordsUnique ) ;
@@ -174,16 +200,15 @@ const wordsFind = [
174
200
175
201
function doesWordExist ( arr , searchWord ) {
176
202
if ( arr . length === 0 ) return null ;
177
-
203
+
178
204
let match = false ;
179
- for ( let i = 0 ; ( i < arr . length ) & ! match ; i ++ ) {
180
- if ( arr [ i ] === searchWord ) {
181
- match = true ;
182
- break ;
183
- }
205
+ for ( let i = 0 ; ( i < arr . length ) & ! match ; i ++ ) {
206
+ if ( arr [ i ] === searchWord ) {
207
+ match = true ;
208
+ break ;
184
209
}
185
- return match ;
186
-
210
+ }
211
+ return match ;
187
212
}
188
213
doesWordExist ( wordsFind , "truth" ) ;
189
214
@@ -205,13 +230,12 @@ const wordsCount = [
205
230
function howManyTimes ( arr , searchWord ) {
206
231
let count = 0 ;
207
232
if ( arr . length === 0 ) return count ;
208
- for ( let i = 0 ; i < arr . length ; i ++ ) {
209
- if ( arr [ i ] === searchWord ) {
210
- count += 1 ;
211
- }
233
+ for ( let i = 0 ; i < arr . length ; i ++ ) {
234
+ if ( arr [ i ] === searchWord ) {
235
+ count += 1 ;
212
236
}
213
- return count ;
214
-
237
+ }
238
+ return count ;
215
239
}
216
240
217
241
// Iteration #8: Bonus
0 commit comments