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

请求帮助完成FizzBuzz算法第一步:生成递增数值数组

实现从0到n的数组生成(FizzBuzz第一步)

给你几种能正确生成目标数组的实现方式,顺便纠正你之前可能踩的坑:

1. 正确的for循环写法

这是最直观的方式,注意循环条件要包含n本身:

function fizzBuzz(n) {
  const result = [];
  // 从0开始,循环到n(包含n),所以用i <= n
  for (let i = 0; i <= n; i++) {
    result.push(i);
  }
  return result;
}

你之前用for循环失败,大概率是循环条件写成了i < n,这样只会生成到n-1,漏掉了n。

2. 用Array.from简洁实现

利用Array.from的映射功能,一行代码搞定:

function fizzBuzz(n) {
  // 第一个参数指定数组长度为n+1(0到n共n+1个元素),第二个参数返回索引值
  return Array.from({ length: n + 1 }, (_, index) => index);
}

3. fill结合map的写法

如果你想用fill方法,需要配合map来替换初始值:

function fizzBuzz(n) {
  // 先创建长度为n+1的数组,用0填充,再通过map把每个位置换成对应的索引
  return new Array(n + 1).fill(0).map((_, i) => i);
}

之前用fill失败应该是只做了填充,没通过map替换成正确的数值。

4. forEach的正确用法

forEach本身不能直接生成数组,需要先创建空数组再填充:

function fizzBuzz(n) {
  const result = [];
  new Array(n + 1).fill(0).forEach((_, i) => {
    result.push(i);
  });
  return result;
}

不过这种写法没必要,不如前面几种简洁。

内容的提问来源于stack exchange,提问作者André Silveira

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 00:05:17