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 相关文章推荐
给moz-firefox下添加IE方法和属性
Apr 10 Javascript
JS网络游戏-(模拟城市webgame)提供的一些例子下载
Oct 14 Javascript
jQuery入门问答 整理的几个常见的初学者问题
Feb 22 Javascript
JavaScript.Encode手动解码技巧
Jul 14 Javascript
jquery 图片上传按比例预览插件集合
May 28 Javascript
js使用正则实现ReplaceAll全部替换的方法
Jul 18 Javascript
js与jquery正则验证电子邮箱、手机号、邮政编码的方法
Jul 04 Javascript
vue封装第三方插件并发布到npm的方法
Sep 25 Javascript
微信小程序防止多次点击跳转(函数节流)
Sep 19 Javascript
在vue和element-ui的table中实现分页复选功能
Dec 04 Javascript
JQuery插件tablesorter表格排序实现过程解析
May 28 jQuery
JavaScript选择器函数querySelector和querySelectorAll
Nov 27 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中::、->、self、$this几种操作符的区别介绍
2013/04/24 PHP
destoon二次开发常用数据库操作
2014/06/21 PHP
PHP数组相关函数汇总
2015/03/24 PHP
PHP人民币金额转大写实例代码
2015/10/02 PHP
php强大的时间转换函数strtotime
2016/02/18 PHP
php验证身份证号码正确性的函数
2016/07/20 PHP
PHP实现数组转JSon和JSon转数组的方法示例
2018/06/14 PHP
读jQuery之十二 删除事件核心方法
2011/07/31 Javascript
利用webqq协议使用python登录qq发消息源码参考
2013/04/08 Javascript
jquery eval解析JSON中的注意点介绍
2013/08/23 Javascript
js 判断图片是否加载完以及实现图片的预下载
2014/08/14 Javascript
ES6中如何使用Set和WeakSet
2016/03/10 Javascript
Javascript中return的使用与闭包详解
2017/01/11 Javascript
详解VUE-地区选择器(V-Distpicker)组件使用心得
2018/05/07 Javascript
对angularJs中ng-style动态改变样式的实例讲解
2018/09/30 Javascript
Node.js 多线程完全指南总结
2019/03/27 Javascript
element-ui中按需引入的实现
2019/12/25 Javascript
nginx配置域名后的二级目录访问不同项目的配置操作
2020/11/06 Javascript
Python把csv数据写入list和字典类型的变量脚本方法
2018/06/15 Python
win10子系统python开发环境准备及kenlm和nltk的使用教程
2019/10/14 Python
Python线程指南分享
2019/11/19 Python
Python代码执行时间测量模块timeit用法解析
2020/07/01 Python
Python3+RIDE+RobotFramework自动化测试框架搭建过程详解
2020/09/23 Python
白宫黑市官网:White House Black Market
2016/11/17 全球购物
King Apparel官网:英国街头服饰品牌
2019/09/05 全球购物
艺术专业大学生自我评价
2013/09/22 职场文书
销售实习自我鉴定
2013/12/07 职场文书
幼儿园大班毕业感言
2014/02/06 职场文书
农村党支部承诺书
2015/04/30 职场文书
婚宴主持词
2015/06/30 职场文书
中秋节主题班会
2015/08/14 职场文书
python文本处理的方案(结巴分词并去除符号)
2021/05/26 Python
Java实现二维数组和稀疏数组之间的转换
2021/06/27 Java/Android
MySQL数据库超时设置配置的方法实例
2021/10/15 MySQL
Python实战实现爬取天气数据并完成可视化分析详解
2022/06/16 Python