You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FizzBuzz问题:如何返回0到max区间符合整除规则的数值数组?

现有代码存在的问题

  • 除数匹配错误:需求要求判断是否被3或5整除,你的代码中误写为7,完全不符合需求规则
  • return 语句位置错误:你将return写在了for循环内部,循环仅执行一次就会直接返回数组,无法遍历完0到max-1的所有数值
  • 拼接数组的方式可以优化:用concat拼接单个元素效率更低,直接用push方法往数组末尾追加元素更合适

修正后的完整代码

function fizzBuzz(max) {
  let arr = [];
  for(let i = 0; i < max; i++){
    // 满足被3或5整除,但不同时被两者整除
    const divisibleBy3 = i % 3 === 0;
    const divisibleBy5 = i % 5 === 0;
    if((divisibleBy3 || divisibleBy5) && !(divisibleBy3 && divisibleBy5)){
      arr.push(i);
    }
  }
  // 循环结束后再返回数组
  return arr;
}
// 测试调用
console.log(fizzBuzz(20)); // 输出 [3,5,6,9,10,12,18]

代码说明

  • 先定义两个变量存储当前数值是否被3、5整除,避免重复计算取模逻辑
  • 组合条件同时满足两个要求:① 至少被3或5其中一个整除 ② 不同时被两者整除
  • 将return移到for循环外部,等所有数值遍历完成后再返回最终的结果数组
  • 0会同时被3和5整除,会自动被条件排除,不需要额外做特殊处理

内容的提问来源于stack exchange,提问作者caseyle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 20:27:03