作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这个问题实际上是双重的:
遍历数组的 for each
循环与遍历其元素的简单 for
循环相比性能如何?
循环是否保证顺序遍历?以下代码表示是:
var sample_array:Array = [];
for (var i:uint = 0; i < 10000; i++) sample_array.push(i);
i = 0;
for each(var value:uint in sample_array) {
sample_array[i++] = value;
}
trace('in order was:', check_in_order(sample_array));
function check_in_order(array:Array):Boolean
{
for (var i:uint = 0, l:uint = array.length; i < l; ++i) {
if (array[i] != i) return false;
}
return true;
}
但是我听其他(高级)工程师上下发誓,遍历并不总是按升序进行的!这是真的吗?
最佳答案
如 Jackson Dunstan 所示,谁将for
,for each
和for in
与不同的集合(数组,向量等)进行了比较,性能排名是(从最快到最慢):
为
每个
for in
(非常慢)在所有情况下,for
都是最快的。特别是与数组或向量一起使用时,for
具有压倒性的性能。这些是所有集合的数字(越小意味着越快):
关于actionscript-3 - AS3 数组 "for each ... in"性能与 for 循环,并保证按顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15920863/
我是一名优秀的程序员,十分优秀!