DEV Community

Discussion on: [Challenge] 🐝 FizzBuzz without if/else

Collapse
 
issammani profile image
Issam Mani • Edited

A bit late to the party but here is my take. I'm basically substituting cond ? valueWhenTrue : valueWhenFalse for a logical equivalent (cond && valueWhenTrue) || valueWhenFalse + calling the function recursively.
Note: array returned is in reverse order ! But we can easily solve that with .reverse()

const fizzBuzz = (num,acc = []) => {
    acc.push(
        (num % 15 === 0 && 'FizzBuzz' ||
          (num % 3 === 0 && 'Fizz' || 
            (num % 5 === 0 && 'Buzz' || 
              num
            )
          )
        )
    )
    return (num === 1 && acc) || fizzBuzz(num - 1,acc);
};


console.log(fizzBuzz(15));
Enter fullscreen mode Exit fullscreen mode