FzzBzz

Entertaining ways to solve that problem.

by justjohn

HTML

<script src="http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.4.1/underscore-min.js"></script>
<div id="target"></div>

JavaScript

// compact code ftw!
// for(i=0;i<100;console.log((++i%3?"":"Fizz")+(i%5?"":"Buzz")||i));

// recursive
/* (function r(i) {
    f = i%3?"":"Fizz",b = i%5?"":"Buzz";
    console.log(f+b||i);
    
    i < 100 && r(i+1);
})(0); */

// more crazy
/* for (i=0;i<100;i++){
    s='';
    i%3||(s="Fizz");
    i%5||(s+="Buzz");
    console.log(s||i);
} */


var rules = [
    [3, 'fizz'],
    [5, 'buzz']
];

var output = _.range(1, 101).reduce(function(m, i) {
    return m + (rules.reduce(function(o, pair) {
        return o + (i % pair[0] === 0 ? pair[1] : '');
    }, '') || i) + '<br>';
}, '');
        
document.getElementById('target').innerHTML = output;