有很多方法可以遍历JavaScript中的数组。 在此基准测试中,我们将研究五种不同的方法以及每种方法的利弊。 请记住,这些基准测试是在Codepen上的Chrome浏览器中运行的。 结果将因浏览器/解释器而异。
我们所有的基准测试都是基于10亿个项目。
第一名:香草JS-向后
for ( let i = arr.length -1 ; i>= 0 ; i--){}
〜30毫秒
向后退比向前快 ! 这是因为循环在每次迭代时都会检查常量0零值,而不是调用数组的.length属性。 但这并不意味着您应该这样做...它很奇怪,很难在认知上遵循。
第二名:香草JS-转发
for ( let i = 0 ; i< arr.length; i++){}
约39毫秒
第三名:ES6 forEach()
arr.forEach(function ( element ) {});
约180毫秒
速度慢,但语法更方便,在这里不足为奇。
第四:每个jQuery
$.each(arr,function ( index, value ) {});
〜225毫秒
Eeeeeew ... jQuery。 如果您住在2010年,就很方便。非常慢。
通配符:对于ES6
for ( const item of arr){}
第一次和第二次运行:153毫秒
第三次以上的跑步时间:约18毫秒
这很奇怪,我不确定如何解释。 也许比我聪明的人可以向我发送@wagslane的答案。 在新的浏览器加载之后运行此命令的前两次速度相当慢,但随后又Swift地增长。 我假设可以进行一些es6优化。