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英文日期(有时间)选择器
May 02 Javascript
js动态在form上插入enctype=multipart/form-data的问题
May 24 Javascript
IE下使用cloneNode注意事项分享
Nov 22 Javascript
javascript创建createXmlHttpRequest对象示例代码
Feb 10 Javascript
js实现新浪微博首页效果
Oct 16 Javascript
jQuery Mobile页面返回不需要重新get
Apr 26 Javascript
JS实现新建文件夹功能
Jun 17 Javascript
详解React-Native全球化多语言切换工具库react-native-i18n
Nov 03 Javascript
jQuery实现简单复制json对象和json对象集合操作示例
Jul 09 jQuery
Vue刷新修改页面中数据的方法
Sep 16 Javascript
vue移动端的左右滑动事件详解
Jun 17 Javascript
JavaScript中时间格式化新思路toLocaleString()
Nov 07 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
编译问题
2006/10/09 PHP
PHP5各个版本的新功能和新特性总结
2014/03/16 PHP
2个比较经典的PHP加密解密函数分享
2014/07/01 PHP
PHP获取QQ达人QQ信息的方法
2015/03/05 PHP
xtree.js 代码
2007/03/13 Javascript
jquery聚焦文本框与扩展文本框聚焦方法
2012/10/12 Javascript
关于jQuery $.isNumeric vs. $.isNaN vs. isNaN
2013/04/15 Javascript
jQuery模拟超链接点击效果代码
2013/04/21 Javascript
web css实现整站样式互相切换
2013/10/29 Javascript
JS实现OCX控件的事件响应示例
2014/09/17 Javascript
JS倒计时代码汇总
2014/11/25 Javascript
JQ实现新浪游戏首页幻灯片
2015/07/29 Javascript
JS实现兼容火狐及IE iframe onload属性的遮罩层隐藏及显示效果
2016/08/23 Javascript
vue2.0开发实践总结之疑难篇
2016/12/07 Javascript
Bootstrap CSS组件之导航条(navbar)
2016/12/17 Javascript
vue项目中添加单元测试的方法
2018/07/21 Javascript
浅谈Node框架接入ELK实践总结
2019/02/22 Javascript
详解vue 在移动端体验上的优化解决方案
2019/05/20 Javascript
vue 实现单选框设置默认选中值
2019/11/07 Javascript
完美解决vue 中多个echarts图表自适应的问题
2020/07/19 Javascript
使用React-Router实现前端路由鉴权的示例代码
2020/07/26 Javascript
python基础教程之面向对象的一些概念
2014/08/29 Python
使用Python的Twisted框架编写简单的网络客户端
2015/04/16 Python
pandas表连接 索引上的合并方法
2018/06/08 Python
Python3中正则模块re.compile、re.match及re.search函数用法详解
2018/06/11 Python
python实现从pdf文件中提取文本,并自动翻译的方法
2018/11/28 Python
Django生成PDF文档显示在网页上以及解决PDF中文显示乱码的问题
2019/07/04 Python
python获取txt文件词向量过程详解
2019/07/05 Python
在linux系统下安装python librtmp包的实现方法
2019/07/22 Python
TensorFlow 输出checkpoint 中的变量名与变量值方式
2020/02/11 Python
python list的index()和find()的实现
2020/11/16 Python
h5调用摄像头的实现方法
2016/06/01 HTML / CSS
帮一个朋友写的求职信
2014/08/09 职场文书
酒店总经理岗位职责
2015/04/01 职场文书
windows server 2016 域环境搭建的方法步骤(图文)
2022/06/25 Servers
JavaScript实现音乐播放器
2022/08/14 Javascript