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方法整理
Jan 30 Javascript
JavaScript中Object.prototype.toString方法的原理
Feb 24 Javascript
Javascript简写条件语句(推荐)
Jun 12 Javascript
理解 Node.js 事件驱动机制的原理
Aug 16 Javascript
vue中的计算属性的使用和vue实例的方法示例
Dec 04 Javascript
vue组件实现弹出框点击显示隐藏效果
Oct 26 Javascript
vue-cli配置环境变量的方法
Jul 09 Javascript
node.js使用redis储存session的方法
Sep 26 Javascript
vue-quill-editor+plupload富文本编辑器实例详解
Oct 19 Javascript
深入理解Vue.js轻量高效的前端组件化方案
Dec 10 Javascript
vue 实现在同一界面实现组件的动态添加和删除功能
Jun 16 Javascript
Vue中强制组件重新渲染的正确方法
Jan 03 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
怎样才能成为PHP高手?学会“懒惰”的编程
2006/12/05 PHP
Yii2创建多界面主题(Theme)的方法
2016/10/08 PHP
PHP编程计算日期间隔天数的方法
2017/04/26 PHP
PHP后门隐藏的一些技巧总结
2020/11/04 PHP
js Array操作的最简短最容易理解方法
2013/12/09 Javascript
100个不能错过的实用JS自定义函数
2014/03/05 Javascript
javascript文件中引用依赖的js文件的方法
2014/03/17 Javascript
jQuery.holdReady()方法用法实例
2014/12/27 Javascript
解析JavaScript的ES6版本中的解构赋值
2015/07/28 Javascript
Vue组件创建和传值的方法
2018/08/17 Javascript
详解离线安装npm包的几种方法
2018/11/25 Javascript
vue分页器组件编写方法详解
2019/06/28 Javascript
Vue 实现输入框新增搜索历史记录功能
2019/10/15 Javascript
Vuex中的Mutations的具体使用方法
2020/06/01 Javascript
react项目从新建到部署的实现示例
2021/02/19 Javascript
[04:09]2014DOTA2国际邀请赛Ti西雅图 历届冠军相继出局 BBC综述今日比赛
2014/07/20 DOTA
用Python脚本来删除指定容量以上的文件的教程
2015/05/04 Python
python和shell监控linux服务器的详细代码
2018/06/22 Python
Python Pandas批量读取csv文件到dataframe的方法
2018/10/08 Python
python+selenium实现自动抢票功能实例代码
2018/11/23 Python
python可视化实现代码
2019/01/15 Python
python re库的正则表达式入门学习教程
2019/03/08 Python
python tkinter图形界面代码统计工具
2019/09/18 Python
Django实现简单网页弹出警告代码
2019/11/15 Python
DVF官方网站:美国时装界尊尚品牌
2017/08/29 全球购物
美丽的现代设计家具:2Modern
2018/07/26 全球购物
营业员演讲稿
2013/12/30 职场文书
集团公司人力资源部岗位职责
2014/01/03 职场文书
国贸专业个人求职信范文
2014/01/08 职场文书
满月酒主持词
2014/03/27 职场文书
吨的认识教学反思
2014/04/27 职场文书
电子银行业务授权委托书
2014/10/10 职场文书
教师师德师风整改措施
2014/10/24 职场文书
大学团日活动总结书
2015/05/11 职场文书
运动会开幕式主持词
2015/07/01 职场文书
用Python实现屏幕截图详解
2022/01/22 Python