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 相关文章推荐
jQuery.query.js 取参数的两点问题分析
Aug 06 Javascript
使用POST方式弹出窗口的两种方法示例介绍
Jan 29 Javascript
JavaScript实现的一个计算数字步数的算法分享
Dec 06 Javascript
JavaScript实现将xml转换成html table表格的方法
Apr 17 Javascript
实用又漂亮的BootstrapValidator表单验证插件
May 30 Javascript
js实现漫天星星效果
Jan 19 Javascript
vue实现密码显示与隐藏按钮的自定义组件功能
Apr 23 Javascript
Vue.js标签页组件使用方法详解
Oct 19 Javascript
layui实现给某一列加点击事件
Oct 26 Javascript
Jquery高级应用Deferred对象原理及使用实例
May 28 jQuery
微信小程序自定义modal弹窗组件的方法详解
Dec 20 Javascript
JavaScript 事件捕获冒泡与捕获详情
Nov 11 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 mcrypt可逆加密算法分析
2011/07/19 PHP
php最简单的删除目录与文件实现方法
2014/11/28 PHP
php一个解析字符串排列数组的方法
2015/05/12 PHP
PHP lcfirst()函数定义与用法
2019/03/08 PHP
常用参考资料(手册)下载或者链接
2006/07/22 Javascript
js下将字符串当函数执行的方法
2011/07/13 Javascript
jquery和雅虎的yql服务实现天气预报服务示例
2014/02/08 Javascript
JavaScript实现添加、查找、删除元素
2015/07/02 Javascript
JavaScript焦点事件、鼠标事件和滚轮事件使用详解
2016/01/15 Javascript
理解JavaScript中Promise的使用
2016/01/18 Javascript
通过隐藏iframe实现无刷新上传文件操作
2016/03/16 Javascript
javascript数组常用方法汇总
2016/09/10 Javascript
js实现彩色条纹滚动条效果
2017/03/15 Javascript
修改 bootstrap table 默认detailRow样式的实例代码
2017/07/21 Javascript
Bootstrap Table 删除和批量删除
2017/09/22 Javascript
微信小程序block的使用教程
2018/04/01 Javascript
angularJs select绑定的model取不到值的解决方法
2018/10/08 Javascript
详解使用angular框架离线你的应用(pwa指南)
2019/01/31 Javascript
Vue el-autocomplete远程搜索下拉框并实现自动填充功能(推荐)
2019/10/25 Javascript
[51:22]Fnatic vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python求导数的方法
2015/05/09 Python
Python正则表达式完全指南
2017/05/25 Python
使用pytorch进行图像的顺序读取方法
2018/07/27 Python
python中数组和矩阵乘法及使用总结(推荐)
2019/05/18 Python
python并发爬虫实用工具tomorrow实用解析
2019/09/25 Python
基于Python获取照片的GPS位置信息
2020/01/20 Python
python numpy数组中的复制知识解析
2020/02/03 Python
css3的动画特效之动画序列(animation)
2017/12/22 HTML / CSS
金融管理应届生求职信
2014/02/20 职场文书
大学专科自荐信
2014/06/17 职场文书
供用电专业求职信
2014/07/07 职场文书
我的中国梦演讲稿500字
2014/08/19 职场文书
党员个人自我剖析材料
2014/10/08 职场文书
公民授权委托书
2014/10/15 职场文书
学雷锋倡议书
2015/01/19 职场文书
学历证明样本
2015/06/16 职场文书