Great question! FizzBuzz is indeed one of the most well known screening questions asked in interviews. I remember coming across a cool Python solution that got it done using generators, without resorting to any modulo logic. Here's how you'd do it in JavaScript, using generators. :-)
(function () {
function* yieldFizzAt3() {
while (true) {
yield '';
yield '';
yield 'Fizz';
}
};
function* yieldBuzzAt5() {
while (true) {
yield '';
yield '';
yield '';
yield '';
yield 'Buzz';
}
};
var fizz = yieldFizzAt3();
var buzz = yieldBuzzAt5();
for (var i = 1; i < 101; i++) {
var fizzBuzz = fizz.next().value + buzz.next().value;
console.log(fizzBuzz ? fizzBuzz : i);
}
})();