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 url传值中文乱码之解决之道
Nov 20 Javascript
JavaScript 设计模式 富有表现力的Javascript(一)
May 26 Javascript
node.js中的fs.readlinkSync方法使用说明
Dec 17 Javascript
JS+CSS实现简单滑动门(滑动菜单)效果
Sep 19 Javascript
Vue.js 递归组件实现树形菜单(实例分享)
Dec 21 Javascript
超全面的JavaScript开发规范(推荐)
Jan 21 Javascript
基于vue开发的在线付费课程应用过程
Jan 25 Javascript
如何更好的编写js async函数
May 13 Javascript
vue实现的树形结构加多选框示例
Feb 02 Javascript
vue实现新闻展示页的步骤详解
Apr 11 Javascript
vue2.0实现列表数据增加和删除
Jun 17 Javascript
jQuery实现查看图片功能
Dec 01 jQuery
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加密解密字符串示例
2016/10/13 PHP
降低PHP Redis内存占用
2017/03/23 PHP
jQuery 添加/移除CSS类实现代码
2010/02/11 Javascript
JS按位非(~)运算符与~~运算符的理解分析
2011/07/31 Javascript
jQuery编辑器KindEditor4.1.4代码高亮显示设置教程
2013/03/01 Javascript
js键盘事件的keyCode
2014/07/29 Javascript
javascript 构造函数方式定义对象
2015/01/02 Javascript
uploadify多文件上传参数设置技巧
2015/11/16 Javascript
盘点javascript 正则表达式中 中括号的【坑】
2016/03/16 Javascript
在Html中使用Requirejs进行模块化开发实例详解
2016/04/15 Javascript
Bootstrap轮播图的使用和理解4
2016/12/14 Javascript
使用vue点击li,获取当前点击li父辈元素的属性值方法
2018/09/12 Javascript
使用wxapp-img-loader自定义组件实现微信小程序图片预加载功能
2018/10/18 Javascript
layer弹出子iframe层父子页面传值的实现方法
2018/11/22 Javascript
bootstrap中的导航条实例代码详解
2019/05/20 Javascript
解决vuex刷新状态初始化的方法实现
2019/08/15 Javascript
解决layui 表单元素radio不显示渲染的问题
2019/09/04 Javascript
JavaScript Array.flat()函数用法解析
2020/09/02 Javascript
python解析中国天气网的天气数据
2014/03/21 Python
Python实现邮件的批量发送的示例代码
2018/01/23 Python
对Pandas DataFrame缺失值的查找与填充示例讲解
2018/11/06 Python
对PyQt5中的菜单栏和工具栏实例详解
2019/06/20 Python
使用Python 自动生成 Word 文档的教程
2020/02/13 Python
pycharm 更改创建文件默认路径的操作
2020/02/15 Python
Html5适配iphoneX刘海屏的简单实现
2019/04/09 HTML / CSS
英国票务网站:Ticketmaster英国
2018/08/27 全球购物
Nordgreen英国官网:斯堪的纳维亚设计师手表
2018/10/24 全球购物
固特异美国在线轮胎店:Goodyear Tire
2019/02/23 全球购物
STP协议的主要用途是什么?为什么要用STP
2012/12/20 面试题
品质主管岗位职责
2014/03/16 职场文书
《改造我们的学习》心得体会
2014/11/07 职场文书
导游欢送词
2015/01/31 职场文书
涨价通知怎么写
2015/04/23 职场文书
2015秋季开学典礼致辞
2015/07/16 职场文书
Python的property属性详细讲解
2022/04/11 Python
Vue OpenLayer 为地图绘制风场效果
2022/04/24 Vue.js