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

JavaScript函数问题:生成小于max的7的倍数数组返回0如何修复?

修复返回小于max的7的倍数数组的函数

你的代码核心错误是数组的push是方法,必须用括号调用,你写成了sevenarr.push[i],这是完全错误的语法:

  • 方括号[]是访问对象/数组属性的语法,这里push是数组的内置方法(本质是函数对象),push[i]只是尝试读取这个函数对象的i属性,根本不会执行添加元素到数组的操作。
  • 你看到结果里有0,是因为循环初始i=0时,0%7===0的条件成立,但错误的代码并没有修改数组——实际原代码运行后应该返回空数组,可能你测试时的情况有偏差,但核心问题肯定是push的调用方式错误。

把sevenarr.push[i]改成sevenarr.push(i)就能正常工作,修复后的完整代码:

function returnSevens(max) {
    let sevenarr = [];
    for (let i = 0; i < max; i++) {
        if (i % 7 === 0) {
            sevenarr.push(i);
        }
    }
    return sevenarr;
}
console.log(returnSevens(14)) // 输出 [0, 7]

如果不需要包含0,还可以优化循环,直接从7开始每次加7,省去取余判断:

function returnSevens(max) {
    let sevenarr = [];
    for (let i = 7; i < max; i += 7) {
        sevenarr.push(i);
    }
    return sevenarr;
}
console.log(returnSevens(14)) // 输出 [7]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 15:18:04