当前位置:首页 > JavaScript

fizzbuzz js实现

2026-02-01 09:12:39JavaScript

FizzBuzz 问题描述

FizzBuzz 是一个经典的编程问题,要求编写一个程序,输出从 1 到 n 的数字。对于 3 的倍数输出 "Fizz",5 的倍数输出 "Buzz",既是 3 又是 5 的倍数输出 "FizzBuzz",否则输出数字本身。

JavaScript 实现方法

方法 1:基本循环与条件判断

function fizzBuzz(n) {
  for (let i = 1; i <= n; 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);
    }
  }
}
fizzBuzz(100);

方法 2:字符串拼接优化

通过先检查 3 和 5 的倍数情况,减少模运算次数。

function fizzBuzz(n) {
  for (let i = 1; i <= n; i++) {
    let output = "";
    if (i % 3 === 0) output += "Fizz";
    if (i % 5 === 0) output += "Buzz";
    console.log(output || i);
  }
}
fizzBuzz(100);

方法 3:使用三元运算符

简化条件判断,适合短代码实现。

function fizzBuzz(n) {
  for (let i = 1; i <= n; i++) {
    console.log(
      i % 15 === 0 ? "FizzBuzz" :
      i % 3 === 0 ? "Fizz" :
      i % 5 === 0 ? "Buzz" : i
    );
  }
}
fizzBuzz(100);

方法 4:ES6 箭头函数与数组映射

利用数组的 map 方法生成结果,适合函数式编程风格。

fizzbuzz js实现

const fizzBuzz = n => 
  Array.from({ length: n }, (_, i) => i + 1)
    .map(num => 
      (num % 15 === 0 ? "FizzBuzz" : 
       num % 3 === 0 ? "Fizz" : 
       num % 5 === 0 ? "Buzz" : num))
    .forEach(result => console.log(result));

fizzBuzz(100);

注意事项

  • 模运算的顺序很重要,优先检查 15(即 3 和 5 的最小公倍数)的情况。
  • 方法 2 和方法 3 减少了重复的模运算,性能更优。
  • 方法 4 适合对函数式编程有偏好的开发者,但可能牺牲部分可读性。

以上方法均能正确实现 FizzBuzz 问题,开发者可根据实际需求选择适合的风格。

标签: fizzbuzzjs
分享给朋友:

相关文章

js实现轮播图

js实现轮播图

基础轮播图实现 使用HTML、CSS和JavaScript实现一个简单的自动轮播图。HTML结构包含一个容器和多个图片项。 <div class="slider"> <div…

js防抖和节流实现

js防抖和节流实现

防抖(Debounce)的实现 防抖的核心思想是在事件被触发后,延迟执行回调函数。如果在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口大小调整等场景。 function debounce…

js分组实现

js分组实现

分组实现方法 在JavaScript中,可以通过多种方式实现数组或对象的分组操作。以下是几种常见的方法: 使用Array.prototype.reduce() 通过reduce方法可以轻松实现数组分…

js实现预览

js实现预览

文件上传预览实现 使用JavaScript实现文件上传预览功能,可以通过FileReader对象读取文件内容并显示预览。以下代码支持图片、文本和PDF文件的预览: // HTML部分需要包含…

js实现防洪

js实现防洪

防抖(Debounce)实现 防抖的核心思想是在事件触发后延迟执行回调函数,若在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口调整等场景。 function debounce(f…

js实现授权

js实现授权

授权流程设计 授权流程通常涉及前端与后端的交互,常见方案包括OAuth2.0、JWT等。以JWT为例的典型流程: 用户提交凭证(如用户名密码)到认证服务 服务端验证通过后生成包含用户信息的JWT令牌…