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

如何将数组作为函数参数实现元素求和?(JavaScript)

数组作为参数在JavaScript中计算的正确写法(针对求和场景)

你的代码里存在几个关键问题,直接导致无法正常运行:

  • 数组初始化错误:let numbers=[m1,m2]中的m1、m2是未定义变量,要计算的数值应该直接写入数组,比如let numbers = [2, 4]
  • 求和函数参数逻辑错误:reduce方法的回调函数接收的是累计值和当前元素,不是整个数组;你直接使用m1+m2,这两个变量在函数内部没有定义,根本无法调用
  • reduce调用方式错误:numbers[2,4]是无效语法,逗号运算符会返回最后一个值4,相当于取numbers[4](数组越界),直接使用numbers.reduce(sum)即可

以下是修正后的完整代码:

// 定义包含待计算数值的数组
let numbers = [2, 4];

// 适配reduce的求和回调函数
function sum(accumulator, currentValue) {
  return accumulator + currentValue;
}

// 调用reduce计算数组元素总和
console.log(numbers.reduce(sum)); // 输出:6

如果想简化写法,也可以直接用箭头函数替代单独的sum函数:

let numbers = [2, 4];
console.log(numbers.reduce((accumulator, currentValue) => accumulator + currentValue));

简单解释下reduce的工作逻辑:它会遍历数组,第一次将数组第一个元素作为累计值accumulator,第二个元素作为当前值currentValue,相加后的结果作为下一轮的累计值,直到遍历完所有元素,最终返回总和。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 02:12:07