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 相关文章推荐
JS图像无缝滚动脚本非常好用
Feb 10 Javascript
JS实现静止元素自动移动示例
Apr 14 Javascript
js获取浏览器基本信息大全
Nov 27 Javascript
Javascript 拖拽的一些简单的应用(逐行分析代码,让你轻松了拖拽的原理)
Jan 23 Javascript
详解Document.Cookie
Dec 25 Javascript
AngularJS 遇到的小坑与技巧小结
Jun 07 Javascript
JS实现基于Sketch.js模拟成群游动的蝌蚪运动动画效果【附demo源码下载】
Aug 18 Javascript
详解如何在vue-cli中使用vuex
Aug 07 Javascript
vue-router二级导航切换路由及高亮显示的实现方法
Jul 10 Javascript
vue请求服务器数据后绑定不上的解决方法
Oct 30 Javascript
vue绑定class的三种方法
Dec 24 Vue.js
利用JavaScript为句子加标题的3种方法示例
Jan 05 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 adodb连接带密码access数据库实例,测试成功
2008/05/14 PHP
PHP+MySQL 制作简单的留言本
2009/11/02 PHP
PHP下判断网址是否有效的代码
2011/10/08 PHP
PHP后台备份MySQL数据库的源码实例
2019/03/18 PHP
laravel实现查询最后执行的一条sql语句的方法
2019/10/09 PHP
script的async属性以非阻塞的模式加载脚本
2013/01/15 Javascript
深入理解JavaScript高级之词法作用域和作用域链
2013/12/10 Javascript
node.js中的fs.fchownSync方法使用说明
2014/12/16 Javascript
使用vue.js开发时一些注意事项
2016/04/27 Javascript
微信小程序  checkbox组件详解及简单实例
2017/01/10 Javascript
利用javascript实现的三种图片放大镜效果实例(附源码)
2017/01/23 Javascript
Vue组件开发初探
2017/02/14 Javascript
vue 下列表侧滑操作实例代码详解
2018/07/24 Javascript
JavaScript继承与聚合实例详解
2019/01/22 Javascript
nodejs 递归拷贝、读取目录下所有文件和目录
2019/07/18 NodeJs
jQuery 筛选器简单操作示例
2019/10/02 jQuery
jQuery实现手风琴效果(蒙版)
2020/01/11 jQuery
vue data变量相互赋值后被实时同步的解决步骤
2020/08/05 Javascript
Vue中登录验证成功后保存token,并每次请求携带并验证token操作
2020/09/08 Javascript
vuex的使用和简易实现
2021/01/07 Vue.js
Python使用scrapy采集时伪装成HTTP/1.1的方法
2015/04/08 Python
Python 实现王者荣耀中的敏感词过滤示例
2019/01/21 Python
Python检查ping终端的方法
2019/01/26 Python
Python实现的合并两个有序数组算法示例
2019/03/04 Python
Python常见读写文件操作实例总结【文本、json、csv、pdf等】
2019/04/15 Python
python打开使用的方法
2019/09/30 Python
Selenium使用Chrome模拟手机浏览器方法解析
2020/04/10 Python
Python数据正态性检验实现过程
2020/04/18 Python
tensorflow使用freeze_graph.py将ckpt转为pb文件的方法
2020/04/22 Python
html5-canvas中使用clip抠出一个区域的示例代码
2018/05/25 HTML / CSS
html5实现图片转圈的动画效果——让页面动起来
2017/10/16 HTML / CSS
eBay加拿大站:eBay.ca
2019/06/20 全球购物
个人简历中的自我评价怎么写
2014/01/26 职场文书
五月的鲜花活动方案
2014/08/21 职场文书
工作汇报材料难写?方法都在这里了!
2019/07/01 职场文书
python+pytest接口自动化之token关联登录的实现
2022/04/06 Python