File tree Expand file tree Collapse file tree 2 files changed +24
-6
lines changed Expand file tree Collapse file tree 2 files changed +24
-6
lines changed Original file line number Diff line number Diff line change 4
4
export function min ( ...numbers : number [ ] ) {
5
5
let smaller = Infinity ;
6
6
7
- for ( const number of numbers ) {
8
- if ( number < smaller ) {
9
- smaller = number ;
7
+ for ( const num of numbers ) {
8
+ if ( num < smaller ) {
9
+ smaller = num ;
10
10
}
11
11
}
12
12
13
13
return smaller ;
14
14
}
15
15
16
16
export function minRecursive ( ...numbers : number [ ] ) {
17
- const finder = ( current : number , competitor ?: number ) : number => {
17
+ const finder = ( current : number , competitor ?: number ) => {
18
18
if ( ! competitor ) {
19
19
return current ;
20
- } else if ( competitor < current ) {
20
+ }
21
+
22
+ if ( competitor < current ) {
21
23
current = competitor ;
22
24
}
23
25
Original file line number Diff line number Diff line change 1
- export function average ( array : readonly number [ ] ) {
1
+ export function averageReducer ( array : readonly number [ ] ) {
2
2
return array . reduce ( ( a , b ) => a + b ) / array . length ;
3
3
}
4
4
5
+ export function average ( numbers : readonly number [ ] ) {
6
+ if ( numbers . length === 0 ) {
7
+ throw new Error ( "Cannot compute the average of an empty array." ) ;
8
+ }
9
+
10
+ const sum = ( res : number , idx : number ) => {
11
+ if ( idx >= numbers . length ) {
12
+ return res ;
13
+ }
14
+
15
+ return sum ( res + numbers [ idx ] , idx + 1 ) ;
16
+ } ;
17
+
18
+ return sum ( 0 , 0 ) / numbers . length ;
19
+ }
20
+
5
21
export function averageIterative ( array : readonly number [ ] ) {
6
22
let count = 0 ;
7
23
You can’t perform that action at this time.
0 commit comments