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

如何将函数传入JavaScript自定义𝝨求和函数以使用外层循环迭代器?

问题原因

你封装的𝝨函数在调用传入的自定义函数时,没有将当前循环的迭代值作为参数传递,因此回调函数中声明的参数n无法获取到迭代值,运算得到undefined,累加后最终返回NaN。

修复后的实现

function 𝝨(start, end, func) {
    let sum = 0;
    for (let i = start; i <= end; i++) {
        // 将当前迭代值传入回调函数
        sum += func(i);
    }
    return sum;
}

修复后你原有的调用方式𝝨(1, 10, n => n ** 2)即可正常运行,最终返回1到10的平方和计算结果385。

可选优化

你可以新增可选的步长参数,适配非连续整数求和的场景:

function 𝝨(start, end, func, step = 1) {
    let sum = 0;
    for (let i = start; i <= end; i += step) {
        sum += func(i);
    }
    return sum;
}

// 调用示例:计算1到10所有奇数的平方和
console.log(𝝨(1, 10, n => n ** 2, 2)) // 输出165

注意事项

请确保传入的回调函数最终返回数值类型的结果,否则累加操作仍有可能返回NaN。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 09:45:04