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 相关文章推荐
window.onresize 多次触发的解决方法
Nov 08 Javascript
jQuery层动画定位滑动效果的方法
Apr 30 Javascript
jquery.qtip提示信息插件用法简单实例
Jun 17 Javascript
JS作用域闭包、预解释和this关键字综合实例解析
Dec 16 Javascript
JS排序之冒泡排序详解
Apr 08 Javascript
angular ng-click防止重复提交实例
Jun 16 Javascript
[js高手之路]HTML标签解释成DOM节点的实现方法
Aug 31 Javascript
Angular表格神器ui-grid应用详解
Sep 29 Javascript
使用Bootstrap和Vue实现用户信息的编辑删除功能
Oct 25 Javascript
使用mint-ui实现省市区三级联动效果的示例代码
Feb 09 Javascript
jQuery中复合选择器简单用法示例
Mar 31 jQuery
详解vue-flickity的fullScreen功能实现
Apr 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
用php获取远程图片并把它保存到本地的代码
2008/04/07 PHP
Drupal7中常用的数据库操作实例
2014/03/02 PHP
PHP+Oracle本地开发环境搭建方法详解
2019/04/01 PHP
JSON 客户端和服务器端的格式转换
2009/08/27 Javascript
Chrome中模态对话框showModalDialog返回值问题的解决方法
2010/05/25 Javascript
javascript测试题练习代码
2012/10/10 Javascript
JavaScript中“+”的陷阱深刻理解
2012/12/04 Javascript
angularJS 中$attrs方法使用指南
2015/02/09 Javascript
Javascript中replace()小结
2015/09/30 Javascript
jQuery获取table行数并输出单元格内容的实现方法
2016/06/30 Javascript
Query常用DIV操作获取和设置长度宽度的实现方法
2016/09/19 Javascript
基于JavaScript实现熔岩灯效果导航菜单
2017/01/04 Javascript
mui开发中获取单选按钮、复选框的值(实例讲解)
2017/07/24 Javascript
vue 自定义指令自动获取文本框焦点的方法
2018/08/25 Javascript
解决 viewer.js 动态更新图片导致无法预览的问题
2019/05/14 Javascript
vue项目中实现缓存的最佳方案详解
2019/07/11 Javascript
微信小程序tab切换可滑动切换导航栏跟随滚动实现代码
2019/09/04 Javascript
解决layui laydate 时间控件一闪而过的问题
2019/09/28 Javascript
巧用Python装饰器 免去调用父类构造函数的麻烦
2012/05/18 Python
Python wxPython库使用wx.ListBox创建列表框示例
2018/09/03 Python
Python面向对象之继承和多态用法分析
2019/06/08 Python
flask框架json数据的拿取和返回操作示例
2019/11/28 Python
python3将变量写入SQL语句的实现方式
2020/03/02 Python
解决jupyter notebook 出现In[*]的问题
2020/04/13 Python
python中time.ctime()实例用法
2021/02/03 Python
国际化的太阳镜及太阳镜配件零售商:Sunglass Hut
2016/07/26 全球购物
健康监测猫砂:Pretty Litter
2017/05/25 全球购物
英国家庭、花园、汽车和移动解决方案:Easylife Group
2018/05/23 全球购物
Ibatis如何使用动态表名
2015/07/12 面试题
高中毕业生生活的自我评价
2013/12/08 职场文书
普通员工辞职信
2014/01/17 职场文书
工作会议主持词
2014/03/17 职场文书
廉洁自律承诺书
2014/03/27 职场文书
电子信息专业应届生自荐信
2014/06/04 职场文书
大学考试作弊检讨书
2015/05/06 职场文书
使用vue判断当前环境是安卓还是IOS
2022/04/12 Vue.js