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实现的使用方向键控制光标在table单元格中切换
Nov 17 Javascript
关于JS字符串函数String.replace()
Apr 07 Javascript
Firefox中使用outerHTML的2种解决方法
Jun 07 Javascript
JavaScript中的值类型转换介绍
Dec 31 Javascript
jquery实现简单合拢与展开网页面板的方法
Sep 01 Javascript
Javascript中关于Array.filter()的妙用详解
Dec 04 Javascript
Vue.js 中取得后台原生HTML字符串 原样显示问题的解决方法
Jun 10 Javascript
vue2.0页面前进刷新回退不刷新的实现方法
Jul 31 Javascript
Angularjs之ngModel中的值验证绑定方法
Sep 13 Javascript
详解Vue CLI 3.0脚手架如何mock数据
Nov 23 Javascript
vue里如何主动销毁keep-alive缓存的组件
Mar 21 Javascript
JavaScript实现无限轮播效果
Nov 19 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下载excel无法打开的解决方法
2013/12/24 PHP
destoon实现调用热门关键字的方法
2014/07/15 PHP
php实现压缩合并js的方法【附demo源码下载】
2016/09/22 PHP
利用PHP抓取百度阅读的方法示例
2016/12/18 PHP
BOOM vs RR BO5 第四场 2.14
2021/03/10 DOTA
Prototype使用指南之range.js
2007/01/10 Javascript
javascript动态的改变IFrame的高度实现自动伸展
2013/10/12 Javascript
JavaScript Ajax Json实现上下级下拉框联动效果实例代码
2013/11/23 Javascript
通过JQuery将DIV的滚动条滚动到指定的位置方便自动定位
2014/05/05 Javascript
JavaScript从数组中删除指定值元素的方法
2015/03/18 Javascript
jquery移动点击的项目到列表最顶端的方法
2015/06/24 Javascript
jQuery实现列表内容的动态载入特效
2015/08/08 Javascript
html+js+highcharts绘制圆饼图表的简单实例
2016/08/04 Javascript
Bootstrap CSS组件之大屏幕展播
2016/12/17 Javascript
jQuery复合事件结合toggle()方法的用法示例
2017/06/10 jQuery
用Python制作在地图上模拟瘟疫扩散的Gif图
2015/03/31 Python
简单学习Python多进程Multiprocessing
2017/08/29 Python
神经网络理论基础及Python实现详解
2017/12/15 Python
NumPy 数学函数及代数运算的实现代码
2018/07/18 Python
python实现小球弹跳效果
2019/05/10 Python
python整合ffmpeg实现视频文件的批量转换
2019/05/31 Python
Python插入Elasticsearch操作方法解析
2020/01/19 Python
代码总结Python2 和 Python3 字符串的区别
2020/01/28 Python
Python3.7黑帽编程之病毒篇(基础篇)
2020/02/04 Python
keras tensorflow 实现在python下多进程运行
2020/02/06 Python
Macbook安装Python最新版本、GUI开发环境、图像处理、视频处理环境详解
2020/02/17 Python
Python函数默认参数常见问题及解决方案
2020/03/26 Python
美国领先的奢侈手表在线零售商:WatchMaxx
2017/12/17 全球购物
写给老师的表扬信
2014/01/21 职场文书
家居饰品店创业计划书
2014/01/31 职场文书
党校学习自我鉴定
2014/02/24 职场文书
授权委托书范文
2014/07/31 职场文书
假释思想汇报范文
2014/10/11 职场文书
公司岗位说明书
2015/10/08 职场文书
Matplotlib绘制条形图的方法你知道吗
2022/03/21 Python
简单聊聊TypeScript只读修饰符
2022/04/06 Javascript