Warning: WP_Syntax::substituteToken(): Argument #1 ($match) must be passed by reference, value given in
/home/bateeqjg/public_html/news/wp-content/plugins/wp-syntax/wp-syntax.php on line
380
Warning: WP_Syntax::substituteToken(): Argument #1 ($match) must be passed by reference, value given in
/home/bateeqjg/public_html/news/wp-content/plugins/wp-syntax/wp-syntax.php on line
380
Warning: WP_Syntax::substituteToken(): Argument #1 ($match) must be passed by reference, value given in
/home/bateeqjg/public_html/news/wp-content/plugins/wp-syntax/wp-syntax.php on line
380
Warning: Undefined array key "layout" in
/home/bateeqjg/public_html/news/wp-content/plugins/wp-about-author/wp-about-author.php on line
94
FizzBuzz Test
Write a program that prints the numbers from 1 to 100. But for multiples of three print “Fizz” instead of the number and for the multiples of five print “Buzz”. For numbers which are multiples of both three and five print “FizzBuzz”.
—c2.com
Here’s my solution:
Test Driven Development Approach
// TDD Readable
var getFizzBuzzStatements = function (len) {
var arr = [],
str = "";
for (var i = 1; i <= len; i++) {
str = (i % 3) ? "" : "Fizz";
str += (i % 5) ? "" : "Buzz";
arr.push(str||i);
}
return arr;
};
var fizzBuzz = function () {
console.log(getFizzBuzzStatements(100).join("\n"));
};
fizzBuzz(); |
// TDD Readable
var getFizzBuzzStatements = function (len) {
var arr = [],
str = "";
for (var i = 1; i <= len; i++) {
str = (i % 3) ? "" : "Fizz";
str += (i % 5) ? "" : "Buzz";
arr.push(str||i);
}
return arr;
};
var fizzBuzz = function () {
console.log(getFizzBuzzStatements(100).join("\n"));
};
fizzBuzz();
Alternative: One liner
// One liner
for (i = 1; i <= 100; i++)
console.log((((i % 3) ? "" : "Fizz") + (i % 5 ? "" : "Buzz")||i) + "\n") |
// One liner
for (i = 1; i <= 100; i++)
console.log((((i % 3) ? "" : "Fizz") + (i % 5 ? "" : "Buzz")||i) + "\n")
Alternative: Switches
var getFizzBuzzStatements = function (len) {
var j,
arr = [];
for (var i = 1; i <= len; i++) {
switch (i % 15) {
case 0:
arr.push("FizzBuzz");
break;
case 3: case 6: case 9: case 12:
arr.push("Fizz");
break;
case 5: case 10:
arr.push("Buzz");
break;
default:
arr.push(i);
}
}
return arr;
};
var fizzBuzz = function () {
console.log(getFizzBuzzStatements(100).join("\n"));
}; |
var getFizzBuzzStatements = function (len) {
var j,
arr = [];
for (var i = 1; i <= len; i++) {
switch (i % 15) {
case 0:
arr.push("FizzBuzz");
break;
case 3: case 6: case 9: case 12:
arr.push("Fizz");
break;
case 5: case 10:
arr.push("Buzz");
break;
default:
arr.push(i);
}
}
return arr;
};
var fizzBuzz = function () {
console.log(getFizzBuzzStatements(100).join("\n"));
};
Demo