摘要:从原理就可以知道,的效率是较低的。那如果一定要达到的效果,有没有其他方法呢答案是肯定的。有一个叫做的方法,能够把一个数组反转。比如的性能又如何呢,下面再来测试结果是可见,性能极高,甚至于没有额外的消耗,可以放心使用。
从原理就可以知道,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性能极高,甚至于没有额外的消耗,可以放心使用。
当你的才华撑不起你的野心的时候、请潜下心、低下头、好好学习、
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/97280.html
摘要:数组则在对象监听之外额外在数组对象上的原型链上加一层原型对象来拦截掉等方法然后在执行预设的回调函数最后本文有什么不完善的地方或者流程图有待改进的地方敬请斧正。 前言 随着前端交互复杂度的提升,各类框架如angular,react,vue等也层出不穷,这些框架一个比较重要的技术点就是数据绑定。数据的监听有较多的实现方案,本文将粗略的描述一番,并对其中一个兼容性较好的深入分析。 实现方案简...
摘要:删除删除数组元素删除第一个元素可以看出,通过运算符删除数组元素也有一些注意的地方。数组方法也可以用于删除数组元素,后面讲解。该方法对数组的每一项运行给定的函数,返回该函数会返回的项组成的数组。 结合《javascript高级程序设计》《javascript权威指南》《javascript语言精粹》做的一篇关于Array对象的全面解析。分为两篇:基础篇和扩展应用篇。 1.概念及...
阅读 2878·2021-11-17 09:33
阅读 1567·2021-10-12 10:13
阅读 2307·2021-09-22 15:48
阅读 2166·2019-08-29 17:19
阅读 2561·2019-08-26 11:50
阅读 1527·2019-08-26 10:37
阅读 1687·2019-08-23 16:54
阅读 2891·2019-08-23 14:14