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 相关文章推荐
在IE模态窗口中自由查看HTML源码的方法
Mar 08 Javascript
in.js 一个轻量级的JavaScript颗粒化模块加载和依赖关系管理解决方案
Jul 26 Javascript
利用javascript的面向对象的特性实现限制试用期
Aug 04 Javascript
从面试题学习Javascript 面向对象(创建对象)
Mar 30 Javascript
jQuery实现字符串全部替换的方法
Dec 12 Javascript
angularjs 实现带查找筛选功能的select下拉框实例
Jan 11 Javascript
React 子组件向父组件传值的方法
Jul 24 Javascript
jquery实现回车键触发事件(实例讲解)
Nov 21 jQuery
vue 不使用select实现下拉框功能(推荐)
May 17 Javascript
Canvas实现微信红包照片效果
Aug 21 Javascript
Vue 打包体积优化方案小结
May 20 Javascript
vue.js页面加载执行created,mounted的先后顺序说明
Nov 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实现Linux服务器木马排查及加固功能
2014/12/29 PHP
php上传文件问题汇总
2015/01/30 PHP
php字符串分割函数用法实例
2015/03/17 PHP
PHP strip_tags() 去字符串中的 HTML、XML 以及 PHP 标签的函数
2016/05/22 PHP
PHP递归算法的简单实例
2019/02/28 PHP
用JQuery实现表格隔行变色和突出显示当前行的代码
2012/02/10 Javascript
JS小功能(button选择颜色)简单实例
2013/11/29 Javascript
对比分析AngularJS中的$http.post与jQuery.post的区别
2015/02/27 Javascript
jQuery实现页面滚动时动态加载内容的方法
2015/03/20 Javascript
JavaScript获取指定元素位置的方法
2015/04/08 Javascript
一起学写js Calender日历控件
2016/04/14 Javascript
解析js如何获取css样式
2016/12/11 Javascript
React-Native实现ListView组件之上拉刷新实例(iOS和Android通用)
2017/07/11 Javascript
Vue全家桶实践项目总结(推荐)
2017/11/04 Javascript
详解VUE-地区选择器(V-Distpicker)组件使用心得
2018/05/07 Javascript
详解Koa中更方便简单发送响应的方式
2018/07/20 Javascript
小程序实现抽奖动画
2020/04/16 Javascript
vue-cli 3 全局过滤器的实例代码详解
2019/06/03 Javascript
JS 创建对象的模式实例小结
2020/04/28 Javascript
[45:52]完美世界DOTA2联赛PWL S3 Forest vs INK ICE 第二场 12.09
2020/12/12 DOTA
python去除空格和换行符的实现方法(推荐)
2017/01/04 Python
python select.select模块通信全过程解析
2017/09/20 Python
python中hashlib模块用法示例
2017/10/30 Python
使用python绘制二元函数图像的实例
2019/02/12 Python
django中使用事务及接入支付宝支付功能
2019/09/15 Python
CSS3模拟动画下拉菜单效果
2017/04/12 HTML / CSS
团拜会策划方案
2014/06/07 职场文书
春游踏青活动方案
2014/08/14 职场文书
调研座谈会发言材料
2014/08/23 职场文书
初中生散播谣言检讨书
2014/11/17 职场文书
2015年学校教研室主任工作总结
2015/07/20 职场文书
新农村建设指导员工作总结
2015/08/13 职场文书
python 算法题——快乐数的多种解法
2021/05/27 Python
【海涛教你打DOTA】黑鸟第一视角解说
2022/04/01 DOTA
python数字图像处理之图像的批量处理
2022/06/28 Python
OpenFeign实现远程调用
2022/08/14 Java/Android