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 相关文章推荐
XmlUtils JS操作XML工具类
Oct 01 Javascript
js 屏蔽鼠标右键脚本附破解方法
Dec 03 Javascript
js控制滚动条缓慢滚动到顶部实现代码
Mar 20 Javascript
用客户端js实现带省略号的分页
Apr 27 Javascript
解决jquery无法找到其他父级子集问题的方法
May 10 Javascript
关于两个jQuery(js)特效冲突的bug的解决办法
Sep 04 Javascript
js实现移动端轮播图效果
Dec 09 Javascript
jq.ajax+php+mysql实现关键字模糊查询(示例讲解)
Jan 02 Javascript
详解React中setState回调函数
Jun 14 Javascript
angular6.0开发教程之如何安装angular6.0框架
Jun 29 Javascript
JS实现十分钟倒计时代码实例
Oct 18 Javascript
JQuery获取元素尺寸、位置及页面滚动事件应用示例
May 14 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字符串的连接的简单实例
2013/12/30 PHP
浅析php适配器模式(Adapter)
2014/11/25 PHP
基于Laravel实现的用户动态模块开发
2017/09/21 PHP
PHP基于面向对象封装的分页类示例
2019/03/15 PHP
实现连缀调用的map方法(prototype)
2009/08/05 Javascript
快速排序 php与javascript的不同之处
2011/02/22 Javascript
JavaScript中:表达式和语句的区别[译]
2012/09/17 Javascript
node.js中的querystring.escape方法使用说明
2014/12/10 Javascript
jQuery模拟黑客帝国矩阵效果实例
2015/06/28 Javascript
移动端使用localStorage缓存Js和css文的方法(web开发)
2016/09/20 Javascript
jQuery实现图片轮播效果代码
2016/09/27 Javascript
node.js中express-session配置项详解
2017/05/31 Javascript
JavaScript-定时器0~9抽奖系统详解(代码)
2017/08/16 Javascript
React中常见的动画实现的几种方式
2018/01/10 Javascript
修改Nodejs内置的npm默认配置路径方法
2018/05/13 NodeJs
LayUi中接口传数据成功,表格不显示数据的解决方法
2018/08/19 Javascript
jQuery表单选择器用法详解
2019/08/22 jQuery
layui table 获取分页 limit的方法
2019/09/20 Javascript
深入理解Antd-Select组件的用法
2020/02/25 Javascript
javascript实现文字跑马灯效果
2020/06/18 Javascript
微信小程序接入vant Weapp组件的详细步骤
2020/10/28 Javascript
python实现简单淘宝秒杀功能
2018/05/03 Python
我用Python抓取了7000 多本电子书案例详解
2019/03/25 Python
对Django中的权限和分组管理实例讲解
2019/08/16 Python
Python处理session的方法整理
2019/08/29 Python
Python for循环与getitem的关系详解
2020/01/02 Python
python 6行代码制作月历生成器
2020/09/18 Python
Python模拟登录和登录跳转的参考示例
2020/10/30 Python
Saucony澳大利亚官网:美国跑鞋品牌,运动鞋中的劳斯莱斯
2018/05/05 全球购物
法国设计制造的扫帚和刷子:Andrée Jardin
2018/12/06 全球购物
某/etc/fstab文件中的某行如下: /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2 请解释其含义
2013/09/18 面试题
上课随便讲话检讨书
2014/09/12 职场文书
房屋质量投诉书
2015/07/02 职场文书
创业计划书之孕婴生活馆
2019/11/11 职场文书
纯html+css实现打字效果
2021/08/02 HTML / CSS
Linux安装Docker详细教程
2022/07/07 Servers