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+canvas实现图片裁剪
Jan 30 Javascript
JS获取文件大小方法小结
Dec 08 Javascript
对jQuary选择器的全面总结
Jun 20 Javascript
js HTML5上传示例代码完整版
Oct 10 Javascript
angularJs中datatable实现代码
Jun 03 Javascript
解决vue2.0路由跳转未匹配相应用路由避免出现空白页面的问题
Aug 24 Javascript
对angularJs中$sce服务安全显示html文本的实例
Sep 30 Javascript
javascript异步编程的六种方式总结
May 17 Javascript
vue prop属性传值与传引用示例
Nov 13 Javascript
解决Layui数据表格显示无数据提示的问题
Nov 14 Javascript
Vue常用的全选/反选的示例代码
Feb 19 Javascript
详解react组件通讯方式(多种)
May 06 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中对数据库操作的封装
2006/10/09 PHP
PHP Session_Regenerate_ID函数双释放内存破坏漏洞
2011/01/27 PHP
PHP simplexml_load_string()函数实例讲解
2019/02/03 PHP
实例介绍PHP中zip_open()函数用法
2019/02/15 PHP
JQquery的一些使用心得分享
2012/08/01 Javascript
jsp+javascript打造级连菜单的实例代码
2013/06/14 Javascript
node.js中的fs.link方法使用说明
2014/12/15 Javascript
JavaScript学习心得之概述
2015/01/20 Javascript
jQuery源码解读之removeAttr()方法分析
2015/02/20 Javascript
整理AngularJS框架使用过程当中的一些性能优化要点
2016/03/05 Javascript
利用原生js和jQuery实现单选框的勾选和取消操作的方法
2016/09/04 Javascript
在js中做数字字符串补0(js补零)
2017/03/25 Javascript
基于VUE选择上传图片并页面显示(图片可删除)
2017/05/25 Javascript
vue-cli3+typescript初体验小结
2019/02/28 Javascript
Vue使用自定义指令实现拖拽行为实例分析
2020/06/06 Javascript
[01:50]WODOTA制作 DOTA2中文宣传片《HERO》
2013/04/28 DOTA
详解详解Python中writelines()方法的使用
2015/05/25 Python
在Django的模型和公用函数中使用惰性翻译对象
2015/07/27 Python
OpenCV+python手势识别框架和实例讲解
2018/08/03 Python
Flask核心机制之上下文源码剖析
2018/12/25 Python
python防止随意修改类属性的实现方法
2019/08/21 Python
Python 使用 prettytable 库打印表格美化输出功能
2019/12/26 Python
python 爬虫请求模块requests详解
2020/12/04 Python
python爬取2021猫眼票房字体加密实例
2021/02/19 Python
快速一键生成Python爬虫请求头
2021/03/04 Python
HTML5使用DOM进行自定义控制示例代码
2013/06/08 HTML / CSS
Mytheresa中国官网:德国时尚奢侈品商城
2017/08/04 全球购物
goodhealth官方海外旗舰店:新西兰国民营养师
2017/12/15 全球购物
全球最受追捧的运动服品牌领先数字目的地:Stylerunner
2020/11/25 全球购物
AJAX的优缺点都有什么
2015/08/18 面试题
超市重阳节活动方案
2014/02/10 职场文书
关于运动会的广播稿(10篇)
2014/09/12 职场文书
2014年学习部工作总结
2014/11/12 职场文书
2015年爱牙日活动总结
2015/02/05 职场文书
男方婚前保证书
2015/02/28 职场文书
《现实主义勇者的王国再建记》第三弹OST全曲试听片段公开
2022/04/04 日漫