signed

QiShunwang

“诚信为本、客户至上”

Javascript连接多个数组不用concat来解决

2021/6/9 2:14:15   来源:
第一种方法就是大家熟知的concat,但是这个方法有一个确定就是该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。

如果只是想把一个新数组的元素加到现有数组中,我们还要为其重新赋值,其实存在有一点点资源的浪费。简单的说,我们要为新创建的数组分配新的内存空间,并且把arr1重新指向这个新内存地址,那么原来那个内存中的数组呢,嘿嘿 那就要看浏览器能不能正确回收喽。

如下例:
复制代码 代码如下:

var arr1 = [1,2,3];
var arr1 = arr1.concat([4,5]);

那么我们有没有什么好办法来避免这个资源消耗呢?

这里可以使用Javascript原生的apply方法来实现,首先看如下代码:
复制代码 代码如下:

var arr1= [1,2,3];
arr1.push.apply(arr1,[4,5]);

这样就搞定了,此方法巧妙的运用了apply方法的特性(第二个参数是数组类型的多个)解放了push方法, push方法从本身只能传递多个值变成了可以传递数组, 上述代码其实就等价于
复制代码 代码如下:

arr1.push(4,5);

这样arr1还是那个arr1,只是内存进行了重写而已,没有重定向和不必要的内存溢出。
您可能感兴趣的文章:
  • JavaScript实现将数组中所有元素连接成一个字符串的方法
  • JavaScript使用concat连接数组的方法
  • javascript数组对象常用api函数小结(连接,插入,删除,反转,排序等)
  • 详解JavaScript对数组操作(添加/删除/截取/排序/倒序)
  • JavaScript数组,JSON对象实现动态添加、修改、删除功能示例
  • JS数组array元素的添加和删除方法代码实例
  • 解析javascript 数组以及json元素的添加删除
  • JavaScript基于对象方法实现数组去重及排序操作示例
  • js算法中的排序、数组去重详细概述
  • javascript数组常见操作方法实例总结【连接、添加、删除、去重、排序等】