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

如何在JavaScript中对两个数组的对应元素值求和

对应数组元素相加的实现方案

嘿,完全不用搞两个循环这么麻烦!其实只需要一次遍历就能轻松搞定这个需求,甚至还有更简洁的数组方法可以直接用,我给你详细讲讲:

基础循环实现(最直观)

因为两个数组的对应元素是同一个索引位置,所以只需要循环一次,用索引同时访问两个数组的元素相加就行。

生成新数组

const arrayOne = [1,2,3,4,5];
const arrayTwo = [2,4,6,8,10];
const newArray = [];

for (let i = 0; i < arrayOne.length; i++) {
  // 按索引取两个数组的元素相加,推入新数组
  newArray.push(arrayOne[i] + arrayTwo[i]);
}

console.log(newArray); // 输出: [3,6,9,12,15]

修改原数组(比如修改arrayOne)

如果不想生成新数组,直接修改其中一个原数组也很简单:

const arrayOne = [1,2,3,4,5];
const arrayTwo = [2,4,6,8,10];

for (let i = 0; i < arrayOne.length; i++) {
  // 把arrayTwo对应元素的值加到arrayOne上
  arrayOne[i] += arrayTwo[i];
}

console.log(arrayOne); // 输出: [3,6,9,12,15]

更简洁的数组方法:map

如果你想写得更优雅,可以用数组的map方法,它会遍历数组并返回一个新数组,刚好匹配我们的需求:

const arrayOne = [1,2,3,4,5];
const arrayTwo = [2,4,6,8,10];

// map的第二个参数就是当前元素的索引,直接用它取arrayTwo的对应元素
const newArray = arrayOne.map((num, index) => num + arrayTwo[index]);

console.log(newArray); // 输出: [3,6,9,12,15]

处理数组长度不一致的情况

如果两个数组长度不一样,为了避免索引越界报错,我们可以取两者的最小长度来遍历:

const arrayOne = [1,2,3];
const arrayTwo = [2,4,6,8,10];
const minLength = Math.min(arrayOne.length, arrayTwo.length);

// 用循环的方式
const newArray = [];
for (let i = 0; i < minLength; i++) {
  newArray.push(arrayOne[i] + arrayTwo[i]);
}
console.log(newArray); // 输出: [3,6,9]

// 或者用map结合slice截取
const newArrayWithMap = arrayOne.slice(0, minLength).map((num, index) => num + arrayTwo[index]);
console.log(newArrayWithMap); // 输出: [3,6,9]

总结一下:核心逻辑就是通过同一个索引同时访问两个数组的对应元素,所以只需要一次遍历就够了,完全不需要双循环~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:37:34