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

在JavaScript ES5中计算二维数组指定位置元素总和并生成新数组

解决方案:计算二维数组指定位置元素的总和并生成新数组

嘿,这需求很清晰,我来帮你搞定!我们需要遍历原二维数组,分别累加每个子数组的**第2位(索引1)和第3位(索引2)**元素,再生成符合你要求格式的新数组。

方法1:使用reduce(简洁高效)

reduce是JavaScript中处理数组累加的利器,能一步到位完成两个数值的累加操作:

var arr = [['abc',2,5,'xyz'],['def',7,11,'mno'],['ghi',23,12,'pqr'],['hij',66,90,'uvw']];

// 用reduce累加两个位置的数值
const { sum1, sum2 } = arr.reduce((acc, currentSubArr) => {
  acc.sum1 += currentSubArr[1]; // 累加每个子数组的第2位元素
  acc.sum2 += currentSubArr[2]; // 累加每个子数组的第3位元素
  return acc;
}, { sum1: 0, sum2: 0 }); // 初始化累加器

const totalSum = sum1 + sum2;
const newArr = ['total', sum1, sum2, totalSum];

console.log(newArr); // 输出: ['total', 98, 118, 216]

方法2:使用普通for循环(直观易懂)

如果刚接触数组操作,普通循环的逻辑会更一目了然,适合新手理解:

var arr = [['abc',2,5,'xyz'],['def',7,11,'mno'],['ghi',23,12,'pqr'],['hij',66,90,'uvw']];
let sum1 = 0;
let sum2 = 0;

// 遍历每个子数组
for (let i = 0; i < arr.length; i++) {
  sum1 += arr[i][1];
  sum2 += arr[i][2];
}

const totalSum = sum1 + sum2;
const newArr = ['total', sum1, sum2, totalSum];

console.log(newArr); // 输出: ['total', 98, 118, 216]

结果验证

两种方法最终都会生成你期望的数组:

newArr = ['total', 98, 118, 216]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:29:23