fork download
  1. function FizzBuzz(n, patterns = [{ pred: (v) => v % 3 === 0, str: "Fizz" },
  2. { pred: (v) => v % 5 === 0, str: "Buzz" }]) {
  3. return Array.from(new Array(n)).map((_, i) =>
  4. [i + 1,
  5. patterns.map((p) => ["", p.str][+p.pred(i + 1)]).join("")
  6. ][+patterns.some((p) => p.pred(i + 1))]
  7. ).join("\n");
  8. }
  9.  
  10. console.log(FizzBuzz(15));
  11. console.log("==========");
  12. console.log(FizzBuzz(15, [
  13. { pred: (v) => v % 3 === 0, str: "Fizz" },
  14. { pred: (v) => v % 5 === 0, str: "Buzz" },
  15. { pred: (v) => v % 7 === 0, str: "Quzz" },
  16. { pred: (v) => v % 11 === 0, str: "Kass" },
  17. ]));
  18. console.log("==========");
  19. console.log(FizzBuzz(15, [
  20. { pred: (v) => (v.toString() + (v % 3 + 3)).indexOf("3") >= 0, str: "Aho" },
  21. { pred: (v) => v % 5 === 0, str: "Buzz" },
  22. ]));
  23. console.log("==========");
  24. console.log(FizzBuzz(15, [
  25. { pred: (v) => (v.toString() + (v % 3 + 3)).indexOf("3") >= 0, str: "Aho" },
  26. { pred: (v) => v % 5 === 0, str: "Buzz" },
  27. { pred: (v) => v % 7 === 0, str: "Quzz" },
  28. { pred: (v) => v % 11 === 0, str: "Kass" },
  29. ]));
  30.  
Success #stdin #stdout 0.08s 31888KB
stdin
Standard input is empty
stdout
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
==========
1
2
Fizz
4
Buzz
Fizz
Quzz
8
Fizz
Buzz
Kass
Fizz
13
Quzz
FizzBuzz
==========
1
2
Aho
4
Buzz
Aho
7
8
Aho
Buzz
11
Aho
Aho
14
AhoBuzz
==========
1
2
Aho
4
Buzz
Aho
Quzz
8
Aho
Buzz
Kass
Aho
Aho
Quzz
AhoBuzz