【js】两个数组内的元素依次相加得到一个新数组。

2024-05-15 18:28

本文主要是介绍【js】两个数组内的元素依次相加得到一个新数组。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在JavaScript中,如果你想要把两个数组的元素依次相加,你可以使用数组的map()方法配合索引来实现这个功能。假设这两个数组的长度相同,你可以这样做:

 
javascriptfunction addArrays(array1, array2) {
// 创建一个新数组,长度与输入数组相同
const result = [];// 使用数组的map方法遍历数组
array1.map((value, index) => {
// 将对应位置的元素相加,并推入新数组
result.push(value + array2[index]);
});// 返回结果数组
return result;
}// 示例数组
const array1 = [1, 2, 3];
const array2 = [4, 5, 6];// 调用函数并打印结果
console.log(addArrays(array1, array2)); // 输出: [5, 7, 9]

如果你想要更简洁的写法,你可以使用Array.prototype.reduce()方法,它同样可以完成这个任务:

 
javascriptfunction addArrays(array1, array2) {
// 假设两个数组长度相同
return array1.reduce((acc, val, index) => {
// 在累加器数组中添加两个对应位置元素的和
acc.push(val + array2[index]);
return acc;
}, []); // 初始值为空数组
}// 示例数组
const array1 = [1, 2, 3];
const array2 = [4, 5, 6];// 调用函数并打印结果
console.log(addArrays(array1, array2)); // 输出: [5, 7, 9]

请注意,如果两个数组的长度不同,你需要添加额外的逻辑来处理这种情况,比如使用较短的数组长度来防止越界错误,或者对较长数组剩余的元素进行特殊处理。

如果两个数组长度不同,并且你希望将较短数组的元素与较长数组的对应元素相加,剩余的元素保持不变,你可以这样做:

 
javascriptfunction addArrays(array1, array2) {
const maxLength = Math.max(array1.length, array2.length);
const result = [];for (let i = 0; i < maxLength; i++) {
// 如果array1有元素,取元素,否则取0
const val1 = i < array1.length ? array1[i] : 0;
// 如果array2有元素,取元素,否则取0
const val2 = i < array2.length ? array2[i] : 0;
// 将两个值相加并推入结果数组
result.push(val1 + val2);
}return result;
}// 示例数组,长度不同
const array1 = [1, 2, 3];
const array2 = [4, 5, 6, 7];// 调用函数并打印结果
console.log(addArrays(array1, array2)); // 输出: [5, 7, 9, 7]

在上面的代码中,maxLength 变量用于确保循环次数不会超过两个数组中较长的那个数组的长度。对于较短的数组,如果索引超出了其长度,就取0进行相加。

这篇关于【js】两个数组内的元素依次相加得到一个新数组。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/992583

相关文章

JS常用组件收集

收集了一些平时遇到的前端比较优秀的组件,方便以后开发的时候查找!!! 函数工具: Lodash 页面固定: stickUp、jQuery.Pin 轮播: unslider、swiper 开关: switch 复选框: icheck 气泡: grumble 隐藏元素: Headroom

hdu2241(二分+合并数组)

题意:判断是否存在a+b+c = x,a,b,c分别属于集合A,B,C 如果用暴力会超时,所以这里用到了数组合并,将b,c数组合并成d,d数组存的是b,c数组元素的和,然后对d数组进行二分就可以了 代码如下(附注释): #include<iostream>#include<algorithm>#include<cstring>#include<stack>#include<que

在JS中的设计模式的单例模式、策略模式、代理模式、原型模式浅讲

1. 单例模式(Singleton Pattern) 确保一个类只有一个实例,并提供一个全局访问点。 示例代码: class Singleton {constructor() {if (Singleton.instance) {return Singleton.instance;}Singleton.instance = this;this.data = [];}addData(value)

hdu 1166 敌兵布阵(树状数组 or 线段树)

题意是求一个线段的和,在线段上可以进行加减的修改。 树状数组的模板题。 代码: #include <stdio.h>#include <string.h>const int maxn = 50000 + 1;int c[maxn];int n;int lowbit(int x){return x & -x;}void add(int x, int num){while

Node.js学习记录(二)

目录 一、express 1、初识express 2、安装express 3、创建并启动web服务器 4、监听 GET&POST 请求、响应内容给客户端 5、获取URL中携带的查询参数 6、获取URL中动态参数 7、静态资源托管 二、工具nodemon 三、express路由 1、express中路由 2、路由的匹配 3、路由模块化 4、路由模块添加前缀 四、中间件

EasyPlayer.js网页H5 Web js播放器能力合集

最近遇到一个需求,要求做一款播放器,发现能力上跟EasyPlayer.js基本一致,满足要求: 需求 功性能 分类 需求描述 功能 预览 分屏模式 单分屏(单屏/全屏) 多分屏(2*2) 多分屏(3*3) 多分屏(4*4) 播放控制 播放(单个或全部) 暂停(暂停时展示最后一帧画面) 停止(单个或全部) 声音控制(开关/音量调节) 主辅码流切换 辅助功能 屏

两个月冲刺软考——访问位与修改位的题型(淘汰哪一页);内聚的类型;关于码制的知识点;地址映射的相关内容

1.访问位与修改位的题型(淘汰哪一页) 访问位:为1时表示在内存期间被访问过,为0时表示未被访问;修改位:为1时表示该页面自从被装入内存后被修改过,为0时表示未修改过。 置换页面时,最先置换访问位和修改位为00的,其次是01(没被访问但被修改过)的,之后是10(被访问了但没被修改过),最后是11。 2.内聚的类型 功能内聚:完成一个单一功能,各个部分协同工作,缺一不可。 顺序内聚:

C语言:柔性数组

数组定义 柔性数组 err int arr[0] = {0}; // ERROR 柔性数组 // 常见struct Test{int len;char arr[1024];} // 柔性数组struct Test{int len;char arr[0];}struct Test *t;t = malloc(sizeof(Test) + 11);strcpy(t->arr,

C 语言基础之数组

文章目录 什么是数组数组变量的声明多维数组 什么是数组 数组,顾名思义,就是一组数。 假如班上有 30 个同学,让你编程统计每个人的分数,求最高分、最低分、平均分等。如果不知道数组,你只能这样写代码: int ZhangSan_score = 95;int LiSi_score = 90;......int LiuDong_score = 100;int Zhou

遮罩,在指定元素上进行遮罩

废话不多说,直接上代码: ps:依赖 jquer.js 1.首先,定义一个 Overlay.js  代码如下: /*遮罩 Overlay js 对象*/function Overlay(options){//{targetId:'',viewHtml:'',viewWidth:'',viewHeight:''}try{this.state=false;//遮罩状态 true 激活,f