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


Posted in Javascript onMarch 24, 2014

第一种方法就是大家熟知的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 相关文章推荐
jQuery判断checkbox是否选中的3种方法
Aug 12 Javascript
使用jQuery设置disabled属性与移除disabled属性
Aug 21 Javascript
innerHTML在IE中报错解决方案
Dec 15 Javascript
jQuery实现的五子棋游戏实例
Jun 13 Javascript
jQuery可见性过滤器:hidden和:visibility用法实例
Jun 24 Javascript
Angular.js如何从PHP读取后台数据
Mar 24 Javascript
深入探索VueJS Scoped CSS 实现原理
Sep 23 Javascript
微信小程序复选框实现多选一功能过程解析
Feb 14 Javascript
vue中 v-for循环的用法详解
Feb 19 Javascript
用js编写留言板
Mar 17 Javascript
Vue Object.defineProperty及ProxyVue实现双向数据绑定
Sep 02 Javascript
Node.js利用Express实现用户注册登陆功能(推荐)
Oct 26 Javascript
jqeury-easyui-layout问题解决方法
Mar 24 #Javascript
让table变成exls的示例代码
Mar 24 #Javascript
JQuery 图片滚动轮播示例代码
Mar 24 #Javascript
JS中判断null、undefined与NaN的方法
Mar 24 #Javascript
jquery高级编程的最佳实践详解
Mar 23 #Javascript
js 判断浏览器使用的语言示例代码
Mar 22 #Javascript
jquery easyui 对于开始时间小于结束时间的判断示例
Mar 22 #Javascript
You might like
PHP用strstr()函数阻止垃圾评论(通过判断a标记)
2013/09/28 PHP
Valerio 发布了 Mootools
2006/09/23 Javascript
JavaScript 动态改变图片大小
2009/06/11 Javascript
JavaScript语言核心数据类型和变量使用介绍
2013/08/23 Javascript
json+jQuery实现的无限级树形菜单效果代码
2015/08/27 Javascript
学习JavaScript设计模式(封装)
2015/11/26 Javascript
Javascript复制实例详解
2016/01/28 Javascript
jquery的父、子、兄弟节点查找,节点的子节点循环方法
2016/12/07 Javascript
jQuery使用JSONP实现跨域获取数据的三种方法详解
2017/05/04 jQuery
使用canvas进行图像编辑的实例
2017/08/29 Javascript
基于$.ajax()方法从服务器获取json数据的几种方式总结
2018/01/31 Javascript
vue.js与后台数据交互的实例讲解
2018/08/08 Javascript
基于vue中对鼠标划过事件的处理方式详解
2018/08/22 Javascript
[01:52]2014DOTA2西雅图邀请赛 V社开大会你不知道的小秘密
2014/07/08 DOTA
[03:55]DOTA2完美大师赛选手传记——LFY.MONET
2017/11/18 DOTA
简单介绍使用Python解析并修改XML文档的方法
2015/10/15 Python
在Linux命令行终端中使用python的简单方法(推荐)
2017/01/23 Python
Python封装原理与实现方法详解
2018/08/28 Python
python实现杨氏矩阵查找
2019/03/02 Python
浅谈Python中的可迭代对象、迭代器、For循环工作机制、生成器
2019/03/11 Python
python单例模式的多种实现方法
2019/07/26 Python
python中必要的名词解释
2019/11/20 Python
通过python连接Linux命令行代码实例
2020/02/18 Python
Python使用ElementTree美化XML格式的操作
2020/03/06 Python
Django微信小程序后台开发教程的实现
2020/06/03 Python
python3 通过 pybind11 使用Eigen加速代码的步骤详解
2020/12/07 Python
好药师网上药店:安全合法的网上药品零售药房
2017/02/15 全球购物
美国购买韩国护肤和美容产品网站:Althea Korea
2020/11/16 全球购物
土木工程个人自荐信范文
2013/11/30 职场文书
皮肤科医师岗位职责
2013/12/04 职场文书
太太口服液广告词
2014/03/20 职场文书
群众路线批评与自我批评发言稿
2014/10/16 职场文书
班主任经验交流材料
2014/12/16 职场文书
清明节寄语2015
2015/03/23 职场文书
校车安全管理责任书
2015/05/11 职场文书
网络研修心得体会
2016/01/08 职场文书