如何将数组作为函数参数实现元素求和?(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
相关产品推荐
相关产品推荐

