1
- // Part 1
2
- const range = ( start , end , step = 1 ) => {
1
+ export const range = ( start , end , step ) => {
3
2
const numbers = [ ]
4
- const interval = Math . abs ( step )
3
+ const interval = Math . abs ( step ) || 1
5
4
6
- if ( ! step ) return [ ]
5
+ if ( start < end && step <= 0 ) return [ ]
6
+ if ( start > end && step >= 0 ) return [ ]
7
7
8
- if ( step > 0 ) {
9
- if ( start < end ) {
10
- for ( let i = start ; i <= end ; i += interval ) {
11
- numbers . push ( i )
12
- }
13
- } else {
14
- for ( let i = end ; i >= start ; i -= interval ) {
15
- numbers . push ( i )
16
- }
8
+ if ( start < end ) {
9
+ for ( let i = start ; i <= end ; i += interval ) {
10
+ numbers . push ( i )
17
11
}
18
12
} else {
19
13
for ( let i = start ; i >= end ; i -= interval ) {
@@ -24,7 +18,10 @@ const range = (start, end, step = 1) => {
24
18
return numbers
25
19
}
26
20
27
- // Part 2
28
- const sum = numbers => numbers . reduce ( ( accum , current ) => accum + current , 0 )
21
+ export const sum = numbers => {
22
+ if ( typeof numbers === 'number' ) return numbers
29
23
30
- console . log ( sum ( range ( 1 , 10 ) ) ) // => 55
24
+ return Array . isArray ( numbers )
25
+ ? numbers . reduce ( ( accum , current ) => accum + current , 0 )
26
+ : null
27
+ }
0 commit comments