You need to enable JavaScript to run this app. 如何对数组内实际元素求和而非计算前两元素间所有整数的和
优惠活动
大模型
产品
解决方案
定价
更多

如何对数组内实际元素求和而非计算前两元素间所有整数的和

问题原因

你当前的代码逻辑本身就不是累加数组元素,而是取数组前两个值的最大、最小值作为区间上下限,累加区间内所有整数,因此才会出现sum([2,4])得到9(2+3+4)而非预期6(2+4)的问题;同时代码只读取了数组前两位元素,自然不支持长度超过2的数组求和。

修复方案

基础兼容版本(for循环实现)

直接遍历数组所有元素累加即可,支持任意长度的数字数组:

function sum(arr) {
    let total = 0;
    for (let i = 0; i < arr.length; i++) {
      total += arr[i];
    }
    return total;
}

测试效果:

  • 执行console.log(sum([2,4]))输出6,符合预期
  • 执行console.log(sum([1,3,5,7]))输出16,支持多元素数组求和

简化版本(reduce实现)

可以直接用JS数组内置的reduce方法实现累加,代码更简洁:

function sum(arr) {
    return arr.reduce((accumulator, currentValue) => accumulator + currentValue, 0);
}

效果和for循环版本完全一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 02:24:06