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实现控制的多级下拉菜单
Jul 05 Javascript
PhantomJS快速入门教程(服务器端的 JavaScript API 的 WebKit)
Aug 06 Javascript
js实现的Easy Tabs选项卡用法实例
Sep 06 Javascript
javascript函数式编程程序员的工具集
Oct 11 Javascript
js实现模拟银行卡账号输入显示效果
Nov 18 Javascript
JavaScript中iframe实现局部刷新的几种方法汇总
Jan 06 Javascript
JavaScript实现邮箱地址自动匹配功能代码
Nov 28 Javascript
JavaScript基于面向对象实现的猜拳游戏
Jan 03 Javascript
实战node静态文件服务器的示例代码
Mar 08 Javascript
使用Node.js实现一个多人游戏服务器引擎
Mar 13 Javascript
利用Vue实现一个markdown编辑器实例代码
May 19 Javascript
ionic2.0双击返回键退出应用
Sep 17 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+mysql数据库查询实例
2015/01/21 PHP
PHP实现二叉树的深度优先与广度优先遍历方法
2015/09/28 PHP
PHP生成图像验证码的方法小结(2种方法)
2016/07/18 PHP
PHP实现防盗链的方法分析
2017/07/25 PHP
php实现微信公众平台发红包功能
2018/06/14 PHP
arguments对象
2006/11/20 Javascript
json 实例详细说明教程
2009/10/31 Javascript
jQuery EasyUI API 中文文档 - ComboGrid 组合表格
2011/10/13 Javascript
JavaScript中的style.display属性操作
2013/03/27 Javascript
jquery解析XML字符串和XML文件的方法说明
2014/02/21 Javascript
详解JavaScript中的forEach()方法的使用
2015/06/08 Javascript
JQuery中Ajax()的data参数类型实例分析
2015/12/15 Javascript
基于Bootstrap table组件实现多层表头的实例代码
2017/09/07 Javascript
vue中路由验证和相应拦截的使用详解
2017/12/13 Javascript
微信小程序实现验证码获取倒计时效果
2018/02/08 Javascript
小程序实现带年月选取效果的日历
2018/06/27 Javascript
React Component存在的几种形式详解
2018/11/06 Javascript
微信小程序实现基于三元运算验证手机号/姓名功能示例
2019/01/19 Javascript
js 对象使用的小技巧实例分析
2019/11/08 Javascript
JavaScript实现Excel表格效果
2020/02/07 Javascript
利用python实现简单的循环购物车功能示例代码
2017/07/05 Python
深入理解Django的自定义过滤器
2017/10/17 Python
Python设计模式之装饰模式实例详解
2019/01/21 Python
python修改文件内容的3种方法详解
2019/11/15 Python
Pyqt5自适应布局实例
2019/12/13 Python
FOREO官方网站:LUNA露娜洁面仪
2016/11/28 全球购物
全球性的在线鞋类品牌:Public Desire
2019/04/03 全球购物
Servlet的生命周期
2013/08/25 面试题
酒店前台接待岗位职责
2013/12/03 职场文书
军训考核自我鉴定
2014/02/13 职场文书
鉴定评语大全
2014/05/05 职场文书
触电现场处置方案
2014/05/14 职场文书
幼师中班个人总结
2015/02/12 职场文书
实验心得体会范文
2016/01/25 职场文书
Go 自定义package包设置与导入操作
2021/05/06 Golang
mysql 乱码 字符集latin1转UTF8
2022/04/19 MySQL