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 相关文章推荐
让插入到 innerHTML 中的 script 跑起来的实现代码
Jul 01 Javascript
javascript函数库-集合框架
Apr 27 Javascript
javascript getElementsByClassName实现代码
Oct 11 Javascript
Jquery插件之打造自定义的select标签
Nov 30 Javascript
JavaScript实现twitter puddles算法实例
Dec 06 Javascript
介绍JavaScript中Math.abs()方法的使用
Jun 14 Javascript
JavaScript的代码编写格式规范指南
Dec 07 Javascript
JavaScript中的跨浏览器事件操作的基本方法整理
May 20 Javascript
基于JavaScript实现本地图片预览
Feb 08 Javascript
jquery插件ContextMenu设置右键菜单
Mar 13 Javascript
vue利用v-for嵌套输出多层对象,分别输出到个表的方法
Sep 07 Javascript
js中的深浅拷贝问题简析
May 10 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设计模式 Decorator(装饰模式)
2011/06/26 PHP
计算php页面运行时间的函数介绍
2013/07/01 PHP
Yii2 rbac权限控制之rule教程详解
2016/06/23 PHP
php中上传文件的的解决方案
2018/09/25 PHP
多个iframe自动调整大小的问题
2006/09/18 Javascript
jQuery(1.3.2) 7行代码搞定跟随屏幕滚动的层
2009/05/21 Javascript
ExtJS 下拉多选框lovcombo
2010/05/19 Javascript
利用js判断浏览器类型(是否为IE,Firefox,Opera浏览器)
2013/11/22 Javascript
JavaScript声明变量时为什么要加var关键字
2014/09/29 Javascript
Javascript数组操作函数总结
2015/02/05 Javascript
浅谈JavaScript的内置对象和浏览器对象
2016/06/03 Javascript
微信小程序 引用其他js文件实现代码
2017/02/22 Javascript
基于vue展开收起动画的示例代码
2018/07/05 Javascript
使用js实现将后台传入的json数据放在前台显示
2018/08/06 Javascript
微信小程序实现日历功能
2018/11/27 Javascript
vue中使用element ui的弹窗与echarts之间的问题详解
2019/10/25 Javascript
Javascript 关于基本类型和引用类型的个人理解
2019/11/01 Javascript
Python3 入门教程 简单但比较不错
2009/11/29 Python
Python实现Const详解
2015/01/27 Python
python中 chr unichr ord函数的实例详解
2017/08/06 Python
python3.5基于TCP实现文件传输
2020/03/20 Python
python 运用Django 开发后台接口的实例
2018/12/11 Python
Python socket 套接字实现通信详解
2019/08/27 Python
pygame实现俄罗斯方块游戏(基础篇1)
2019/10/29 Python
使用PyQt5实现图片查看器的示例代码
2020/04/21 Python
关于python scrapy中添加cookie踩坑记录
2020/11/17 Python
Debenhams百货英国官方网站:Debenhams UK
2016/07/12 全球购物
日本运动品牌美津浓官方购物网站:MIZUNO SHOP
2016/08/21 全球购物
java程序员面试交流
2012/11/29 面试题
培训演讲稿范文
2014/01/12 职场文书
入党积极分子自我鉴定
2014/02/18 职场文书
卫生系统先进事迹
2014/05/13 职场文书
毕业生面试求职信
2014/06/23 职场文书
俄语专业毕业生求职信
2014/07/12 职场文书
医德考评自我评价
2014/09/14 职场文书
2014党员学习习主席讲话思想汇报
2014/09/15 职场文书