File tree Expand file tree Collapse file tree 4 files changed +28
-8
lines changed Expand file tree Collapse file tree 4 files changed +28
-8
lines changed Original file line number Diff line number Diff line change 87
87
88
88
## Documentation
89
89
90
- Is hosted on [ Deno Doc] ( https://doc.deno.land/https://deno.land/x/eloq/mod.ts ) 📄
90
+ Is hosted on [ Deno Doc] ( https://doc.deno.land/https://deno.land/x/eloq/mod.ts )
91
+ 📄
91
92
92
93
## Support
93
94
Original file line number Diff line number Diff line change
1
+ function fizzBuzzExpected ( max : number ) {
2
+ return Array . from ( { length : max } , ( _ , i ) => {
3
+ const n = i + 1 ;
4
+
5
+ if ( n % 15 === 0 ) return "FizzBuzz" ;
6
+ if ( n % 3 === 0 ) return "Fizz" ;
7
+ if ( n % 5 === 0 ) return "Buzz" ;
8
+
9
+ return n ;
10
+ } ) ;
11
+ }
Original file line number Diff line number Diff line change @@ -17,13 +17,21 @@ Deno.test("[fizzBuzz]", () => {
17
17
FIZZ ,
18
18
13 ,
19
19
14 ,
20
- FIZZ ,
21
20
FIZZ_BUZZ ,
22
21
] ;
23
22
24
23
assertEquals ( fizzBuzz ( 15 ) , expected ) ;
25
24
} ) ;
26
25
26
+ Deno . test ( "[fizzBuzz] spot check" , ( ) => {
27
+ const result = fizzBuzz ( 20 ) ;
28
+
29
+ assertEquals ( result [ 2 ] , FIZZ ) ;
30
+ assertEquals ( result [ 4 ] , BUZZ ) ;
31
+ assertEquals ( result [ 14 ] , FIZZ_BUZZ ) ;
32
+ assertEquals ( result [ 19 ] , BUZZ ) ;
33
+ } ) ;
34
+
27
35
Deno . test ( "[isDivisbleBy]" , ( ) => {
28
36
assert ( divisibleBy ( 15 , 3 ) ) ;
29
37
assert ( divisibleBy ( 15 , 5 ) ) ;
Original file line number Diff line number Diff line change @@ -7,24 +7,24 @@ export const FIZZ = "Fizz";
7
7
export const BUZZ = "Buzz" ;
8
8
export const FIZZ_BUZZ = "FizzBuzz" ;
9
9
10
+ export type FizzBuzz = typeof FIZZ | typeof BUZZ | typeof FIZZ_BUZZ | number ;
11
+
10
12
export function fizzBuzz ( max = 100 ) {
11
- const result : ( typeof FIZZ | typeof BUZZ | typeof FIZZ_BUZZ | number ) [ ] = [ ] ;
13
+ const result : FizzBuzz [ ] = [ ] ;
12
14
13
15
for ( let number = 1 ; number <= max ; number ++ ) {
14
16
const fizz = divisibleBy ( number , 3 ) ;
15
17
const buzz = divisibleBy ( number , 5 ) ;
16
18
17
- if ( fizz ) {
19
+ if ( fizz && buzz ) {
20
+ result . push ( FIZZ_BUZZ ) ;
21
+ } else if ( fizz ) {
18
22
result . push ( FIZZ ) ;
19
23
} else if ( buzz ) {
20
24
result . push ( BUZZ ) ;
21
25
} else {
22
26
result . push ( number ) ;
23
27
}
24
-
25
- if ( fizz && buzz ) {
26
- result . push ( FIZZ_BUZZ ) ;
27
- }
28
28
}
29
29
30
30
return result ;
You can’t perform that action at this time.
0 commit comments