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 相关文章推荐
让广告代码不再影响你的网页加载速度
Jul 07 Javascript
IE与firefox下Dhtml的一些区别小结
Dec 02 Javascript
jQuery EasyUI API 中文文档 - ComboTree组合树
Oct 11 Javascript
js返回上一页并刷新的多种实现方法
Feb 26 Javascript
jQuery CSS()方法改变现有的CSS样式
Aug 20 Javascript
JS实现列表的响应式排版(推荐)
Sep 01 Javascript
javascript实现根据函数名称字符串动态执行函数的方法示例
Dec 28 Javascript
Canvas实现动态的雪花效果
Feb 13 Javascript
js用类封装pop弹窗组件
Oct 08 Javascript
JavaScript定义及输出螺旋矩阵的方法详解
Dec 01 Javascript
ES6模板字符串和标签模板的应用实例分析
Jun 25 Javascript
基于js实现数组相邻元素上移下移
May 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和ACCESS写聊天室(九)
2006/10/09 PHP
php采集速度探究总结(原创)
2008/04/18 PHP
php遍历文件夹所有文件子文件夹函数代码
2013/11/27 PHP
php获取文件内容最后一行示例
2014/01/09 PHP
Windows下的PHP安装pear教程
2014/10/24 PHP
jQuery EasyUI API 中文文档 - Form表单
2011/10/06 Javascript
JS删除数组元素的函数介绍
2013/03/27 Javascript
Javascript图片上传前的本地预览实例
2014/06/16 Javascript
js实现横向百叶窗效果网页切换动画效果的方法
2015/03/02 Javascript
浅谈JavaScript 的执行顺序
2015/08/07 Javascript
jQuery实现简易的输入框字数计数功能示例
2017/01/16 Javascript
jQuery实现的浮动层div浏览器居中显示效果
2017/02/03 Javascript
jQuery UI 实例讲解 - 日期选择器(Datepicker)
2017/09/18 jQuery
Vue项目使用CDN优化首屏加载问题
2018/04/01 Javascript
使用Node搭建reactSSR服务端渲染架构
2018/08/30 Javascript
vue使用codemirror的两种用法
2019/08/27 Javascript
Vue Router中应用中间件的方法
2020/08/06 Javascript
Nest.js 授权验证的方法示例
2021/02/22 Javascript
[06:59]DOTA2-DPC中国联赛3月7日Recap集锦
2021/03/11 DOTA
Python遍历zip文件输出名称时出现乱码问题的解决方法
2015/04/08 Python
详解Python3中字符串中的数字提取方法
2017/01/14 Python
python tkinter canvas 显示图片的示例
2019/06/13 Python
python+excel接口自动化获取token并作为请求参数进行传参操作
2020/11/10 Python
python源文件的字符编码知识点详解
2021/03/04 Python
S’well Bottle保温杯官网:绝缘不锈钢水瓶
2018/05/09 全球购物
Sephora丝芙兰印尼官方网站:购买化妆品和护肤品
2018/07/02 全球购物
新奥尔良珠宝:Mignon Faget
2020/11/23 全球购物
计算机开发个人求职信范文
2013/09/26 职场文书
中文专业自荐书
2014/06/29 职场文书
忠诚奉献演讲稿
2014/09/12 职场文书
公司行政助理岗位职责
2015/04/11 职场文书
婚姻出轨保证书
2015/05/08 职场文书
关于空气污染危害的感想
2015/08/11 职场文书
创业计划书之餐饮馄饨店
2019/07/18 职场文书
家电创业计划书
2019/08/05 职场文书
人生哲理妙语30条:淡写流年,笑过人生
2019/09/04 职场文书