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+CSS实现的经典tab选项卡效果代码
Sep 16 Javascript
Node.js 应用跑得更快 10 个技巧
Apr 03 Javascript
JavaScript从数组的indexOf()深入之Object的Property机制
May 11 Javascript
JS代码实现根据时间变换页面背景效果
Jun 16 Javascript
vue下拉列表功能实例代码
Apr 08 Javascript
详解vue文件中使用echarts.js的两种方式
Oct 18 Javascript
js的各种数据类型判断的介绍
Jan 19 Javascript
Node.js之删除文件夹(含递归删除)代码实例
Sep 09 Javascript
js贪心算法 钱币找零问题代码实例
Sep 11 Javascript
Vue表单提交点击事件只允许点击一次的实例
Oct 23 Javascript
使用JS实现鼠标放上图片进行放大离开实现缩小功能
Jan 27 Javascript
如何理解Vue简单状态管理之store模式
May 15 Vue.js
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
JAVA/JSP学习系列之七
2006/10/09 PHP
PHP编程快速实现数组去重的方法详解
2017/07/22 PHP
Laravel框架实现redis集群的方法分析
2017/09/14 PHP
php实现构建排除当前元素的乘积数组方法
2018/10/06 PHP
ajax页面无刷新 IE下遭遇Ajax缓存导致数据不更新的问题
2012/12/11 Javascript
js基于setTimeout与setInterval实现多线程
2016/06/17 Javascript
JavaScript 判断一个对象{}是否为空对象的简单方法
2016/10/09 Javascript
解析ajaxFileUpload 异步上传文件简单使用
2016/12/30 Javascript
前端把html表格生成为excel表格的实例
2017/09/19 Javascript
基于滚动条位置判断的简单实例
2017/12/14 Javascript
vue小白入门教程
2018/04/02 Javascript
Vuex中的State使用介绍
2019/01/19 Javascript
如何使用CSS3+JQuery实现悬浮墙式菜单
2019/06/18 jQuery
浅谈关于vue中scss公用的解决方案
2019/12/02 Javascript
Python获取当前时间的方法
2014/01/14 Python
Python实现抓取页面上链接的简单爬虫分享
2015/01/21 Python
python实现获取客户机上指定文件并传输到服务器的方法
2015/03/16 Python
在Python操作时间和日期之asctime()方法的使用
2015/05/22 Python
python如何把嵌套列表转变成普通列表
2018/03/20 Python
浅析python中numpy包中的argsort函数的使用
2018/08/30 Python
对Python协程之异步同步的区别详解
2019/02/19 Python
django 微信网页授权认证api的步骤详解
2019/07/30 Python
Django文件存储 默认存储系统解析
2019/08/02 Python
python模块常用用法实例详解
2019/10/17 Python
使用 Python ssh 远程登陆服务器的最佳方案
2020/03/06 Python
实现ECharts双Y轴左右刻度线一致的例子
2020/05/16 Python
Python faker生成器生成虚拟数据代码实例
2020/07/20 Python
Python3使用tesserocr识别字母数字验证码的实现
2021/01/29 Python
乌克兰网上服装店:Bolf.ua
2018/10/30 全球购物
Hotels.com拉丁美洲:从豪华酒店到经济型酒店的预定优惠和折扣
2019/12/09 全球购物
什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?
2016/08/13 面试题
大学校务公开实施方案
2014/03/31 职场文书
学生逃课检讨书
2015/02/17 职场文书
合作与交流自我评价
2015/03/09 职场文书
PyCharm 安装与使用配置教程(windows,mac通用)
2021/05/12 Python
如何使用Python提取Chrome浏览器保存的密码
2021/06/09 Python