这篇文章主要介绍了JS合并两个数组的3种方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

一个包解决你所有的JS问题,点击获取

需要将两个数组合并成为一个的情况。比如:

有两个数组a、b,需求是将两个数组合并成一个。方法如下:

1、concat

js的Array对象提供了一个叫concat()方法,连接两个或更多的数组,并返回结果。

这里有一个问题,concat方法连接a、b两个数组后,a、b两个数组的数据不变,同时会返回一个新的数组。这样当我们需要进行多次的数组合并时,会造成很大的内存浪费,如果是数据量比较小的时候,还可以勉强用,如果数据量大的时候,这个就不妥了,所以这个方法肯定不是最好的。

2、for循环

大概的思路是:遍历其中一个数组,把该数组中的所有元素依次添加到另外一个数组中。直接上代码:

这样的写法可以解决第一种方案中对内存的浪费,但是会有另一个问题:丑!这么说不是没有道理,如果能只用一行代码就搞定,岂不快哉~

3、apply

函数的apply方法有一个特性,那就是func.apply(obj,argv),argv是一个数组。所以我们可以利用这点,直上代码:

a.push.apply(a,b);

调用a.push这个函数实例的apply方法,同时把,b当作参数传入,这样a.push这个方法就会遍历b数组的所有元素,达到合并的效果。

这里可能有点绕,我们可以把b看成[4,5,6],变成这样:

然后上面的操作就等同于:

这样就很清楚了!

另外,还要注意两个小问题:

1)以上3种合并方法并没有考虑过a、b两个数组谁的长度更小。

所以好的做法是预先判断a、b两个数组哪个更大,然后使用大数组合并小数组,这样就减少了数组元素操作的次数!

2)有时候我们不希望原数组(a、b)改变,这时就只能使用concat了。

以上就是《数组合并》JS合并两个数组的3种方法详解的全部内容,希望对大家的学习有所帮助。

matlab合并有序数组,《数组合并》JS合并两个数组的3种方法详解相关推荐

  1. php 去重_php求两数组交集的四种方法详解

    题目:给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入: nums1 = [1,2,2,1],nums2 = [2,2] 输出: [2] 示例 2: 输入: nums1 = [4,9,5 ...

  2. new Date将字符串转化成日期格式 兼容IE,ie8如何通过new Date将字符串转化成日期格式,js中如何进行字符串替换, replace() 方法详解

    new Date将字符串转化成日期格式 兼容IE,ie8如何通过new Date将字符串转化成日期格式,js中如何进行字符串替换, replace() 方法详解 //获得年月日时分秒 //传入日期// ...

  3. pythonbool类型数组生成_对numpy中布尔型数组的处理方法详解

    布尔数组的操作方式主要有两种,any用于查看数组中是否有True的值,而all则用于查看数组是否全都是True. 如果用于计算的时候,布尔量会被转换成1和0,True转换成1,False转换成0.通过 ...

  4. php 输出数组内容_关于打印数组的10种方法详解

    假设有一个数组:<?php $arr=["PHP","中文","网"]; echo $arr; ?>请问上面的代码会输出什么?上 ...

  5. php 带建数组转字符串,php数组转换为字符串的两种方法详解【附视频】

    本篇文章主要给大家介绍PHP数组转换为字符串的两种方法.(文章末尾附有对应的视频教程) 第一种方法:使用PHP本身的函数implode来直接将数组转换为字符串. 第二种方法:使用循环遍历数组元素拼接成 ...

  6. php引入路径配置,require.js的路径配置和css的引入方法详解

    这篇文章主要介绍了详解require.js配置路径的用法和css的引入,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 前端开发在近一两年发展的非常快,JavaScript作为主流的开发语言得到了前 ...

  7. JS创建对象模式7种方法详解

    创建对象的几种模式 虽然Object构造函数或者字面量,都可以用来创建对象,但这些方式有明显的缺点:使用同一个接口创建很多对象,会产生大量的代码, 于是,工厂模式诞生了 1 工厂模式 工厂模式是广为人 ...

  8. html焦点图自动轮播,JS实现焦点图轮播效果的方法详解

    本文实例讲述了JS实现焦点图轮播效果的方法.分享给大家供大家参考,具体如下: 效果图如下: 一.所用到的知识点 1.DOM操作 2.定时器 3.事件运用 4.Js动画 5.函数递归 6.无限滚动大法 ...

  9. JS截取字符串的三种方法详解

    本文详细讲解了JS截取字符串的三种方法,文中通过示例代码介绍的非常详细.对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 JS提供三个截取字符串的方法,分别是:slice(),subst ...

最新文章

  1. 鹅厂666,用梅花桩遛狗
  2. 驰骋工作流引擎设置消息收听
  3. 【django】HttpRequest对象
  4. 垃圾回收机制和菜单栏工具栏
  5. java 更新订单状态_Java 8状态更新
  6. Mysql数据库,项目需求需要数据还原的数据表结构构思方案
  7. python继承的特点_python面向对象三大特性之继承
  8. iOS开发之runtime(16):设置/获取section数据详解
  9. Spring源码学习笔记:起源发展和核心模块主要职能
  10. 计算机未来发展情况作文,未来的计算机作文600字|未来的计算机作文
  11. ppm与LSB含义,换算
  12. [毕业设计]威客网站可行性研究报告书
  13. 笔记本实现有线路由器功能
  14. 瘦,是一种信仰。轻,是一种理想
  15. 图像处理_ISP_坏点矫正
  16. codeforces 757e Bash Plays with Functions
  17. win10 开机软件自动启动设置
  18. 【改进模糊神经网络】基于粒子群-万有引力算法PSOGSA 改进的前馈神经网络研究(Matlab代码实现)
  19. 关于objectArx /CAD二次开发中“绘制点、线、圆、圆弧、多段线、矩形、文字等”
  20. 学习笔记(5):JavaWeb基础核心技术-5. 佟刚_JavaWEB_Servlet 的配置及生命周期方法

热门文章

  1. 【go-tcpcat】Go TCP服务器框架 支持Hook、功能码函数
  2. 浅谈table和DIV网页布局
  3. 魔域口袋版服务器维护,《魔域手游》13日例行维护
  4. innerHTML和innerText区别
  5. 【Vue】elementUI el-dialog embed标签无法实时更新预览PDF文件问题
  6. 中文经过hibernate处理变成乱码
  7. sql如何遍历几百万的表_关于SQL查询效率,100w数据,查询只要1秒
  8. linux如何ping多个ip,多线程,同时ping多个ip
  9. 看完这篇你还敢说分不清 Java 类 对象 实例 变量间的区别?
  10. JW万豪将于威尼斯举办沉浸式美食佳酿节