fizzbuzz js实现


FizzBuzz 的 JavaScript 实现
FizzBuzz 是一个经典的编程练习,要求从 1 到 100 输出数字,但如果是 3 的倍数输出 "Fizz",5 的倍数输出 "Buzz",同时是 3 和 5 的倍数输出 "FizzBuzz"。
基础实现
for (let i = 1; i <= 100; 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);
}
}
更简洁的实现
for (let i = 1; i <= 100; i++) {
let output = "";
if (i % 3 === 0) output += "Fizz";
if (i % 5 === 0) output += "Buzz";
console.log(output || i);
}
使用三元运算符
for (let i = 1; i <= 100; i++) {
console.log(
i % 15 === 0 ? "FizzBuzz" :
i % 3 === 0 ? "Fizz" :
i % 5 === 0 ? "Buzz" :
i
);
}
函数式实现
Array.from({ length: 100 }, (_, i) => i + 1).forEach(i => {
console.log(
(i % 3 ? "" : "Fizz") + (i % 5 ? "" : "Buzz") || i
);
});
可配置版本
function fizzBuzz(n, rules) {
for (let i = 1; i <= n; i++) {
let output = "";
for (const [divisor, word] of rules) {
if (i % divisor === 0) output += word;
}
console.log(output || i);
}
}
// 使用示例
fizzBuzz(100, [[3, "Fizz"], [5, "Buzz"]]);
每种实现方式各有特点,基础实现最直观,简洁实现减少了条件判断次数,函数式实现更现代,可配置版本则具有更好的扩展性。






