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

如何使用for循环实现嵌套数组的子数组求和并生成结果数组?

问题分析与解决

先看你代码里的几个核心问题:

  • 内层循环遍历的是外层数组array,而非当前子数组array[i],导致访问array[i][j]时可能取到不存在的元素,直接出现NaN
  • 求和逻辑完全错误:array[i][j] + array[i][j]是把同一个元素拼接成字符串(比如1+1变成"11")再转数字,根本不是累加求和
  • 没有创建结果数组存储每个子数组的和,最后只输出单个值,完全不符合需求

正确实现代码

var numberList = [[1, 2, 3], [4,5, 6]];
function add(array) {
  var result = [];
  // 外层循环遍历每个子数组
  for (let i = 0; i < array.length; i++) {
    var sum = 0;
    // 内层循环遍历当前子数组的所有元素
    for (let j = 0; j < array[i].length; j++) {
      sum += array[i][j];
    }
    // 将当前子数组的和存入结果数组
    result.push(sum);
  }
  console.log(result); // 输出 [6, 15]
  return result;
}
add(numberList);

代码说明

  • 外层for循环遍历嵌套数组中的每个子数组
  • 每个子数组求和前初始化sum为0,避免和其他子数组的结果混淆
  • 内层for循环逐个累加当前子数组的元素值到sum
  • 子数组求和完成后,用push方法将结果存入结果数组
  • 最终返回的result就是所有子数组求和后的目标数组

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 10:54:53