作家
登录

Array的push与unshift方法性能比较分析

作者: 来源:www.28hudong.com 2013-03-30 00:58:15 阅读 我要评论

从原理就可以知道,unshift的效率是较低的。原因是,它每添加一个元素,都要把现有元素往下移一个位置。但到底效率差异有多大呢?下面来测试一下。 测试环境的主要硬件:CPU T7100(1.8G);内存4G DDR2 667;硬盘5400转。主要软件:操作系统为Windows 7;浏览器为Firefox 3.6.9。测试代码: 复制代码 代码如下: var arr = [ ], s = +new Date; // push性能测试 for (var i = 0; i < 50000; i++) {   arr.push(i); } console.log(+new Date - s); s = +new Date; arr = [ ]; // unshift性能测试 for (var i = 0; i < 50000; i++) {   arr.unshift(i); } console.log(+new Date - s); 这段代码分别执行了50000次push和unshift操作,运行一次以后,得出结果: 12 1152 可见,unshift比push要慢差不多100倍!因此,平时还是要慎用unshift,特别是对大数组。那如果一定要达到unshift的效果,有没有其他方法呢?答案是肯定的。 Array有一个叫做reverse的方法,能够把一个数组反转。先把要放进数组的元素用push添加,再执行一次reverse,就达到了unshift的效果。比如: 复制代码 代码如下: for (var i = 0; i < 50000; i++) {   arr.push(i); } arr.reverse(); reverse的性能又如何呢,下面再来测试: 复制代码 代码如下: var arr = [ ], s = +new Date; for (var i = 0; i < 50000; i++) {   arr.push(i); } arr.reverse(); console.log(+new Date - s); 结果是: 12 可见,reverse性能极高,甚至于没有额外的消耗,可以放心使用。

  推荐阅读

  jQuery总体架构的理解分析

jQuery脚本总体结构来说,有如下形式: 复制代码 代码如下: (function( window, undefined ) { // Define a local copy of jQueryvar jQuery = function( selector, context ) { // The jQuery object is actually>>>详细阅读


本文标题:Array的push与unshift方法性能比较分析

地址:http://www.17bianji.com/kaifa2/JS/24837.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)