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

如何在JavaScript中比较多维数组值并找出最大子数组总和

求多维数组中最大子数组总和

你已经实现了单个子数组的求和逻辑,现在只需要遍历多维数组的每个子数组,计算每个子数组的和,再从中找出最大值即可。

实现步骤:

  • 遍历多维数组的每一个子数组
  • 对每个子数组使用你已有的reduce方法计算总和
  • 维护一个变量记录当前的最大总和,遍历过程中不断更新这个值

完整代码示例:

// 目标多维数组
const multiArr = [[1, 2], [3, 10], [3, 3]];

// 初始化最大总和为第一个子数组的和(也可以设为负无穷,兼容子数组和为负数的情况)
let maxSum = multiArr[0].reduce((acc, val) => acc + val, 0);

// 遍历所有子数组
for (const subArr of multiArr) {
  const currentSum = subArr.reduce((acc, val) => acc + val, 0);
  // 比较并更新最大总和
  if (currentSum > maxSum) {
    maxSum = currentSum;
  }
}

console.log(maxSum); // 输出 13

更简洁的写法(使用map和Math.max):

const multiArr = [[1, 2], [3, 10], [3, 3]];

// 先把每个子数组的和映射成一个新数组,再取最大值
const maxSum = Math.max(...multiArr.map(subArr => 
  subArr.reduce((acc, val) => acc + val, 0)
));

console.log(maxSum); // 输出 13

注意:如果多维数组中可能存在空的子数组,需要额外处理(比如空数组和为0,或者根据需求忽略),上述代码默认空数组和为0。

内容的提问来源于stack exchange,提问作者Vongai Olivia Machingura

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 03:55:25