FizzBuzz if/else vs object

Benchmark created by eprislac on


Setup

'use strict'
  const nums = Array.from(Array(100).keys())

Test runner

Ready to run.

Testing in
TestOps/sec
if/else
const fizzbuzziness = (num) => {
  if(num % 3 === 0) {
    return 'Fizz'
  } else if(num % 5 === 0) {
    return 'Buzz'
  } else if((num % 3 === 0) && (num % 5 === 0)) {
    return 'FizzBuzz'
  } else {
    return ''
  }
}

nums.map(n => fizzbuzziness(n))
ready
object
const fizzbuzziness = (num) => {
    const tbl = { 'Fizz': (num % 3 === 0), 'Buzz': (num % 5 === 0) }
    return Object
      .keys(tbl)
      .filter(key => tbl[key])
      .reduce((acc, curr) => { return `${acc}${curr}` }, '')
  }

nums.map(n => fizzbuzziness(n))
ready
string literal
(() => {
  const fizzbuzziness =
    num => `${ num % 3 === 0 ? 'Fizz' : '' }${ num % 5 === 0 ? 'Buzz' : '' }`
})()
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.

  • Revision 1: published by eprislac on