Here's a solution I like very much, because it uses function composition:
// helpersconstrange=(m,n)=>Array.from(Array(n-m+1).keys()).map(n=>n+m);constcompose=(fn1,...fns)=>fns.reduce((prevFn,nextFn)=>value=>prevFn(nextFn(value)),fn1);constisDivisibleBy=divider=>replacer=>value=>value%divider===0?replacer:value;// fizzbuzz definitionconstfizz=isDivisibleBy(3)("Fizz");constbuzz=isDivisibleBy(5)("Buzz");constfizzBuzz=isDivisibleBy(15)("FizzBuzz");// this is what I like most about this implementationconstmagic=compose(fizz,buzz,fizzBuzz);console.log(range(1,100).map(magic));
Here's a solution I like very much, because it uses function composition:
It's heavily inspired by tokdaniel's gist.