この質問は実際には 2 つあります。
Array のループは、その要素の単純なループと比較して、どのように
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; }
しかし、他の (シニア レベルの) エンジニアが、トラバーサルが常に昇順で進行するとは限らないことを断言しているのを聞いたことがあります。これは本当ですか?