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

JavaScript中如何在函数内正确使用变量实现数组求和?

数组元素求和的正确实现方式

先拆解你两次尝试的问题:

  • 第一次代码:函数solution没有返回值,所以console.log输出undefined;同时全局变量newArr的使用不符合函数封装逻辑,即便修改了全局变量,外部也需要单独访问它才能拿到结果,这不是合理的函数设计。
  • 第二次代码:把newArr声明在循环内部,每次循环都会重新创建变量并赋值为0,相当于每次只累加当前循环的单个元素,循环结束后变量被销毁,根本存不住累加的总和。

正确实现方法

方法1:规范的for循环写法

将求和变量声明在函数内部,循环完成后返回这个变量:

function solution(arr) {
  let sum = 0; // 变量声明在函数内,避免全局污染
  for (let i = 0; i < arr.length; i++) {
    sum += arr[i];
  }
  return sum; // 必须返回求和结果,外部才能获取
}

console.log(solution([1,2,3,4])) // 输出 10

方法2:使用数组reduce方法(更简洁)

JavaScript数组内置的reduce方法专门用于处理累加、聚合类逻辑,写法更紧凑:

function solution(arr) {
  return arr.reduce((total, current) => total + current, 0);
}

console.log(solution([1,2,3,4])) // 输出 10

reduce参数说明:第一个参数是回调函数,total代表当前累加的总和,current是当前遍历到的数组元素;第二个参数0是总和的初始值,确保空数组时返回0而非undefined。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 14:55:27