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 相关文章推荐
JavaScript 克隆数组最简单的方法
Feb 12 Javascript
一个tab标签切换效果代码
Mar 27 Javascript
javascript中typeof的使用示例
Dec 19 Javascript
在Javascript中处理数组之toSource()方法的使用
Jun 09 Javascript
Jquery插件仿百度搜索关键字自动匹配功能
May 11 Javascript
AngularJS入门教程之表格实例详解
Jul 27 Javascript
jQuery将表单序列化成一个Object对象的实例
Nov 29 Javascript
微信页面倒计时代码(解决safari不兼容date的问题)
Dec 13 Javascript
JS控件bootstrap datepicker使用方法详解
Mar 25 Javascript
Javascript中this关键字指向问题的测试与详解
Aug 11 Javascript
jQuery zTree 异步加载添加子节点重复问题
Nov 29 jQuery
vue打开子组件弹窗都刷新功能的实现
Sep 21 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
Excel数据导入Mysql数据库的实现代码
2008/06/05 PHP
PHP中的插件机制原理和实例
2014/07/08 PHP
Apache服务器下防止图片盗链的办法
2015/07/06 PHP
Exjs 入门篇
2010/04/07 Javascript
JQuery实现表格中相同单元格合并示例代码
2013/06/26 Javascript
js 单击式的下拉菜单效果实例
2013/08/13 Javascript
jQuery实现自定义下拉列表
2015/01/05 Javascript
ECMAScript中函数function类型
2015/06/03 Javascript
jquery实现简单的表单验证
2015/11/17 Javascript
轻松使用jQuery双向select控件Bootstrap Dual Listbox
2015/12/13 Javascript
你不需要jQuery(三) 新AJAX方法fetch()
2016/06/14 Javascript
jQuery实现右下角可缩放大小的层完整实例
2016/06/20 Javascript
ExtJs的Ext.Ajax.request实现waitMsg等待提示效果
2017/06/14 Javascript
原生js FileReader对象实现图片上传本地预览效果
2020/03/27 Javascript
Vue组件化开发思考
2018/02/02 Javascript
vue实现导航标题栏随页面滚动渐隐渐显效果
2020/03/12 Javascript
[01:00:30]TFT vs VGJ.T Supermajor 败者组 BO3 第一场 6.5
2018/06/06 DOTA
详解Python程序与服务器连接的WSGI接口
2015/04/29 Python
python编程开发之日期操作实例分析
2015/11/13 Python
Python简单爬虫导出CSV文件的实例讲解
2018/07/06 Python
python字符串Intern机制详解
2019/07/01 Python
Django CBV模型源码运行流程详解
2020/08/17 Python
CSS3实现粒子旋转伸缩加载动画
2016/04/22 HTML / CSS
CSS3中Transition动画属性用法详解
2016/07/04 HTML / CSS
html5实现微信打飞机游戏
2014/03/27 HTML / CSS
中国首家奢侈品O2O网购平台:第五大道奢侈品网
2017/12/14 全球购物
全陪导游欢迎词
2014/01/17 职场文书
大学校务公开实施方案
2014/03/31 职场文书
爱国演讲稿500字
2014/05/04 职场文书
祖国在我心中演讲稿(小学生)
2014/09/23 职场文书
单位同意报考证明
2015/06/17 职场文书
安全教育培训心得体会
2016/01/15 职场文书
掌握这项技巧,一年阅读300本书不是梦
2019/09/12 职场文书
导游词之神仙居景区
2019/11/15 职场文书
使用GO语言实现Mysql数据库CURD的简单示例
2021/08/07 Golang
apache虚拟主机配置的三种方式(小结)
2022/07/23 Servers