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 相关文章推荐
jquery 关于event.target使用的几点说明介绍
Apr 26 Javascript
Jquery $.getJSON 在IE下的缓存问题解决方法
Oct 10 Javascript
JS判断客服QQ号在线还是离线状态的方法
Jan 13 Javascript
javascript自定义右键弹出菜单实现方法
May 25 Javascript
JavaScript编写一个简易购物车功能
Sep 17 Javascript
AngularJS中指令的四种基本形式实例分析
Nov 22 Javascript
详解Jquery Easyui的验证扩展
Jan 09 Javascript
JavaScript数据结构学习之数组、栈与队列
May 02 Javascript
详解基于 axios 的 Vue 项目 http 请求优化
Sep 04 Javascript
详解koa2学习中使用 async 、await、promise解决异步的问题
Nov 13 Javascript
JavaScript setInterval()与setTimeout()计时器
Dec 27 Javascript
vue使用element-ui按需引入
May 20 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
ThinkPHP静态缓存简单配置和使用方法详解
2016/03/23 PHP
PHP+JS实现的商品秒杀倒计时用法示例
2016/11/15 PHP
使用php完成常见的文件上传功能(推荐)
2017/01/13 PHP
php ajax confirm 删除实例详解
2019/03/06 PHP
用jquery来定位
2007/02/20 Javascript
javascript Discuz代码中的msn聊天小功能
2008/05/25 Javascript
各浏览器对document.getElementById等方法的实现差异解析
2013/12/05 Javascript
JQuery与JS里submit()的区别示例介绍
2014/02/17 Javascript
JavaScript中的对象序列化介绍
2014/12/30 Javascript
jquery实现标签上移、下移、置顶
2015/04/26 Javascript
JQuery替换DOM节点的方法
2015/06/11 Javascript
Vue数据驱动模拟实现1
2017/01/11 Javascript
vuejs实现本地数据的筛选分页功能思路详解
2017/11/15 Javascript
微信小程序实现星级评分和展示
2018/07/05 Javascript
JavaScript 性能提升之路(推荐)
2019/04/10 Javascript
详解JavaScript对数组操作(添加/删除/截取/排序/倒序)
2019/04/28 Javascript
在React中写一个Animation组件为组件进入和离开加上动画/过度效果
2019/06/24 Javascript
layer.prompt输入层的例子
2019/09/24 Javascript
如何使用七牛Python SDK写一个同步脚本及使用教程
2015/08/23 Python
Python网络编程中urllib2模块的用法总结
2016/07/12 Python
python字符串string的内置方法实例详解
2018/05/14 Python
在windows下Python打印彩色字体的方法
2018/05/15 Python
Python实现的拉格朗日插值法示例
2019/01/08 Python
用python打印1~20的整数实例讲解
2019/07/01 Python
Python数据分析pandas模块用法实例详解
2019/11/20 Python
Python flask路由间传递变量实例详解
2020/06/03 Python
CSS3弹性盒模型开发笔记(一)
2016/04/26 HTML / CSS
利用CSS3参考手册和CSS3代码生成工具加速来学习网页制
2012/07/11 HTML / CSS
英国现代家具和装饰网站:PN Home
2018/08/16 全球购物
光荣入党自我鉴定
2014/01/22 职场文书
综合实践活动方案
2014/02/14 职场文书
初中学生评语大全
2014/04/24 职场文书
我的职业生涯规划:打造自己的运动帝国
2014/09/18 职场文书
党员四风问题对照检查材料
2014/09/27 职场文书
幼儿园2015年度工作总结
2015/04/01 职场文书
高性能跳频抗干扰宽带自组网电台
2022/02/18 无线电