Skip to content

Instantly share code, notes, and snippets.

@jsvg
Created December 27, 2016 23:51
Show Gist options
  • Save jsvg/66742a9b1e46b3f8688398151a3ee074 to your computer and use it in GitHub Desktop.
Save jsvg/66742a9b1e46b3f8688398151a3ee074 to your computer and use it in GitHub Desktop.
FizzBuzz πŸ‘
// FP y'all
const fizzBuzzCreate = cases => (from = 0, to = 100) => {
const amt = to - from;
Array.from(Array(amt)).map((_, i) => {
const iter = i + 1 + from;
const triggerMatch = cases.find(trigger => trigger.case(iter));
return triggerMatch ? triggerMatch.resp : iter;
}).map(i => console.log(i));
};
// Cases trigger a console keyword
const cases = [
{ case: i => i % 15 === 0, resp: 'FizzBuzz' },
{ case: i => i % 3 === 0, resp: 'Fizz' },
{ case: i => i % 5 === 0, resp: 'Buzz' },
// Can override default { case: i => true, resp: 'πŸ’©' },
];
// Create a fizzBuzz function from the default cases
const fizzBuzz = fizzBuzzCreate(cases);
// Defaults to 0 to 100, but can be anything
fizzBuzz(-50, 50);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment