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 相关文章推荐
最短的IE判断代码
Mar 13 Javascript
jQuery前台数据获取实现代码
Mar 16 Javascript
JS实现闪动的title消息提醒效果
Jun 20 Javascript
node.js中的fs.lchown方法使用说明
Dec 16 Javascript
AngularJS控制器继承自另一控制器
May 09 Javascript
全面解析JavaScript里的循环方法之forEach,for-in,for-of
Apr 20 Javascript
JS结合bootstrap实现基本的增删改查功能
Jul 22 Javascript
JavaScript运动框架 多物体任意值运动(三)
May 17 Javascript
vue 添加vux的代码讲解
Nov 30 Javascript
微信小程序之swiper轮播图中的图片自适应高度的方法
Apr 23 Javascript
阿望教你用vue写扫雷小游戏
Jan 20 Javascript
微信小程序getLocation 需要在app.json中声明permission字段
Mar 03 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
PHILIPS AE3805收音机的分析打磨
2021/03/02 无线电
PHP.ini中配置屏蔽错误信息显示和保存错误日志的例子
2014/05/12 PHP
PHP 数据结构队列(SplQueue)和优先队列(SplPriorityQueue)简单使用实例
2015/05/12 PHP
PHP+MySQL实现无极限分类栏目的方法
2015/12/23 PHP
深入解析PHP的Laravel框架中的event事件操作
2016/03/21 PHP
Linux php 中文乱码的快速解决方法
2016/05/13 PHP
php实现银联商务公众号+服务窗支付的示例代码
2019/10/12 PHP
php经典趣味算法实例代码
2020/01/21 PHP
基于jQuery的Spin Button自定义文本框数值自增或自减
2010/07/17 Javascript
返回对象在当前级别中是第几个元素的实现代码
2011/01/20 Javascript
javascript使用百度地图api和html5特性获取浏览器位置
2014/01/10 Javascript
js实现文本框支持加减运算的方法
2015/08/19 Javascript
Bootstrap入门书籍之(三)栅格系统
2016/02/17 Javascript
JQuery给select添加/删除节点的实现代码
2016/04/26 Javascript
详解vue的数据binding绑定原理
2017/04/12 Javascript
react-router JS 控制路由跳转实例
2017/06/15 Javascript
自定义PC微信扫码登录样式写法
2017/12/12 Javascript
Vue页面骨架屏注入方法
2018/05/13 Javascript
vue2中引用及使用 better-scroll的方法详解
2018/11/15 Javascript
Vue自定义指令上报Google Analytics事件统计的方法
2019/02/25 Javascript
webpack.DefinePlugin与cross-env区别详解
2020/02/23 Javascript
Python使用scrapy抓取网站sitemap信息的方法
2015/04/08 Python
全面了解python字符串和字典
2016/07/07 Python
Python中用post、get方式提交数据的方法示例
2017/09/22 Python
基于python实现学生管理系统
2018/10/17 Python
Python实现简单查找最长子串功能示例
2019/02/26 Python
python3+opencv生成不规则黑白mask实例
2020/02/19 Python
Python matplotlib 绘制双Y轴曲线图的示例代码
2020/06/12 Python
python获取时间戳的实现示例(10位和13位)
2020/09/23 Python
idealfit英国:世界领先的女性健身用品和运动衣物品牌
2017/11/25 全球购物
莫斯科购买书籍网站:Book24
2020/01/12 全球购物
英语文学专业学生的自我评价
2013/10/31 职场文书
趣味活动策划方案
2014/02/08 职场文书
住宅质量保证书
2014/04/29 职场文书
专题组织生活会发言材料
2014/10/17 职场文书
Apache自带的ab压力测试工具的实现
2022/07/23 Servers