- Print numbers from 1 to n
- For multiples of 3 print Fuzz
- For multiples of 5 print Buzz
- For multiples of 3 and 5 print FizzBuzz
1
2
Fizz
4
Buzz
Fizz
...
14
FizzBuzz
- Build it as it is => for loop with if/else if/else
- Make it better => Use expressions!
const isFizz = i % 3 === 0 - Make it better => No extra
console.logs, useresult - More functional approach => Don't mutate result
let result;
if (isFizz && isBuzz) {
result = "FizzBuzz"
}
else if (isFizz) {
result = "Fizz"
}
else if (isBuzz) {
result = "Buzz"
}
else {
result = i
}
console.log(result)
const result =
isFizz && isBuzz ? "FizzBuzz"
: isFizz
? "Fizz"
: isBuzz
? "Buzz"
: i
console.log(result)
To be able to write a test for the FizzBuzz, I'm building a string to compare to:
1 2 Fizz Fizz Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz