Skip to content

Instantly share code, notes, and snippets.

@aq2bq
Created July 10, 2015 02:36
Show Gist options
  • Save aq2bq/333cba90463807ffc01c to your computer and use it in GitHub Desktop.
Save aq2bq/333cba90463807ffc01c to your computer and use it in GitHub Desktop.
Fizz Buzz on Javascript
// Logic 1: The shortest
(function(i,c){while(i<=100){if(i%15==0){c("FizzBuzz")}else if(i%3==0){c("Fizz")}else if(i%5==0){c("Buzz")}else{c(i)}i++}})(1,console.log.bind(console));
// Logic 2: Use Array#forEach
(function(i,a){while(i<=100){a.push(i);i++}return a;})(1,[]).forEach(function(i){
if(i % 15 == 0){
console.log("FizzBuzz");
} else if(i % 3 == 0) {
console.log("Fizz");
} else if(i % 5 == 0){
console.log("Buzz");
} else{
console.log(i);
}
});
// Logic 3: Extend <Number>
Number.prototype.fizzBuzz = function(){
var i = Number(this);
if(i % 15 == 0) return 'FizzBuzz';
if(i % 3 == 0) return 'Fizz';
if(i % 5 == 0) return 'Buzz';
return i;
}
for (var i = 1; i <= 100; i++) console.log(i.fizzBuzz());
// Logic 4: Recursive Function
function fizzBuzz(i){
if(i % 15 == 0){
console.log("FizzBuzz");
} else if(i % 3 == 0) {
console.log("Fizz");
} else if(i % 5 == 0){
console.log("Buzz");
} else{
console.log(i);
}
if (i < 100) {
i++;
fizzBuzz(i);
}
}
fizzBuzz(1);
// Logic 5: without % by using RegExp
function isFizz(i) {
var str = String(String(i).split('').map(function(k){return Number(k);}).reduce(function(n,p){ return n + p;}));
if (str.length != 1) return isFizz(Number(str));
return !!str.match(/[369]/);
}
function isBuzz(i) {
return !!String(i).match(/.*[05]$/)
}
for (var i = 1; i <= 100; i++) {
if(isFizz(i) && isBuzz(i)){
console.log("FizzBuzz");
} else if(isFizz(i)) {
console.log("Fizz");
} else if(isBuzz(i)){
console.log("Buzz");
} else{
console.log(i);
}
}
// eval() + Unicode Escape Sequence
eval("\u0028\u0066\u0075\u006E\u0063\u0074\u0069\u006F\u006E\u0028\u0069\u002C\u0063\u0029\u007B\u0077\u0068\u0069\u006C\u0065\u0028\u0069\u003C\u003D\u0031\u0030\u0030\u0029\u007B\u0069\u0066\u0028\u0069\u0025\u0031\u0035\u003D\u003D\u0030\u0029\u007B\u0063\u0028\u0022\u0046\u0069\u007A\u007A\u0042\u0075\u007A\u007A\u0022\u0029\u007D\u0065\u006C\u0073\u0065\u0020\u0069\u0066\u0028\u0069\u0025\u0033\u003D\u003D\u0030\u0029\u007B\u0063\u0028\u0022\u0046\u0069\u007A\u007A\u0022\u0029\u007D\u0065\u006C\u0073\u0065\u0020\u0069\u0066\u0028\u0069\u0025\u0035\u003D\u003D\u0030\u0029\u007B\u0063\u0028\u0022\u0042\u0075\u007A\u007A\u0022\u0029\u007D\u0065\u006C\u0073\u0065\u007B\u0063\u0028\u0069\u0029\u007D\u0069\u002B\u002B\u007D\u007D\u0029\u0028\u0031\u002C\u0063\u006F\u006E\u0073\u006F\u006C\u0065\u002E\u006C\u006F\u0067\u002E\u0062\u0069\u006E\u0064\u0028\u0063\u006F\u006E\u0073\u006F\u006C\u0065\u0029\u0029\u003B")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment