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 相关文章推荐
跟随鼠标旋转的文字
Nov 30 Javascript
解javascript 混淆加密收藏
Jan 16 Javascript
跨浏览器的事件对象介绍
Jun 27 Javascript
js解析xml字符串和xml文档实现原理及代码(针对ie与火狐)
Feb 02 Javascript
JS中的prototype与面向对象的实例讲解
May 22 Javascript
回车直接实现点击某按钮的效果即触发单击事件
Feb 27 Javascript
详谈jQuery操纵DOM元素属性 attr()和removeAtrr()方法
Jan 22 Javascript
js实现的后台左侧管理菜单代码
Sep 11 Javascript
JS操作COOKIE实现备忘记录的方法
Apr 01 Javascript
EasyUI创建人员树的实例代码
Sep 15 Javascript
Bootstrap treeview实现动态加载数据并添加快捷搜索功能
Jan 07 Javascript
对vue里函数的调用顺序介绍
Mar 17 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
sony ICF-2010 拆解与改装
2021/03/02 无线电
php下图片文字混合水印与缩略图实现代码
2009/12/11 PHP
mysql_num_rows VS COUNT 效率问题分析
2011/04/23 PHP
php smarty 二级分类代码和模版循环例子
2011/06/01 PHP
php实现源代码加密的方法
2015/07/11 PHP
Ajax+PHP实现的模拟进度条功能示例
2019/02/11 PHP
jQuery 入门级学习笔记及源码
2010/01/22 Javascript
JavaScript 原型学习总结
2010/10/29 Javascript
ExtJs默认的字体大小改变的几种方法(自己整理)
2013/04/18 Javascript
js怎么覆盖原有方法实现重写
2014/09/04 Javascript
JavaScript设计模式之观察者模式(发布者-订阅者模式)
2014/09/24 Javascript
jQuery实现的登录浮动框效果代码
2015/09/26 Javascript
js简单实现调整网页字体大小的方法
2016/07/23 Javascript
80%应聘者都不及格的JS面试题
2017/03/21 Javascript
js鼠标经过tab选项卡时实现切换延迟
2017/03/24 Javascript
详解VueRouter进阶之导航钩子和路由元信息
2017/09/13 Javascript
原生实现一个react-redux的代码示例
2018/06/08 Javascript
JS实现的合并两个有序链表算法示例
2019/02/25 Javascript
layui多图上传实现删除功能的例子
2019/09/23 Javascript
使用vue重构资讯页面的实例代码解析
2019/11/26 Javascript
Python中设置变量作为默认值时容易遇到的错误
2015/04/03 Python
python执行等待程序直到第二天零点的方法
2015/04/23 Python
python实现井字棋游戏
2020/03/30 Python
浅谈DataFrame和SparkSql取值误区
2018/06/09 Python
pycharm配置当鼠标悬停时快速提示方法参数
2019/07/31 Python
python如何实现不可变字典inmutabledict
2020/01/08 Python
python使用PIL剪切和拼接图片
2020/03/23 Python
html5 canvas-1.canvas介绍(hello canvas)
2013/01/07 HTML / CSS
canvas小画板之平滑曲线的实现
2020/08/12 HTML / CSS
瑞典网上购买现代和复古家具:Reforma
2019/10/21 全球购物
师范生实习个人的自我评价
2013/09/28 职场文书
致铅球运动员广播稿精选
2014/01/12 职场文书
水利公司纪检监察自我鉴定
2014/02/25 职场文书
财务总监岗位职责
2015/02/03 职场文书
师德师风主题教育活动总结
2015/05/07 职场文书
Python多个MP4合成视频的实现方法
2021/07/16 Python