在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
相关产品推荐
相关产品推荐

