Раз уж добрался до форума, вот еще вопрос прошаренным товарищам
Не так давно наткнулся на вопрос на
stackoverflow начет сравнения скорости выполнения обычного

Код AS3:
for (var i:uint = 0; i < n; i++)
и for in

Код AS3:
for (var i:String in something)
Прямую ссылку, к сожалению, потерял, но суть была такая:
Весь трюк итерации по Array с помощью for in заключался в создании объекта i типа String и использовании i в качестве индекса:

Код AS3:
var items:Array = ["hi", "there", "bob"];
for (var index:String in items) {
trace(index+" => "+items[index]); // traces "0 => hi", "1 => there" and "2 => bob"
}
Ответ приняли как верный и сказали, что да, этот способ быстрее чем если делать интовый i
Собственно, сам вопрос. Почему для доступа к элементам массива по индексу используется величина типа String (нельзя определить i как число), что в данном случае передается в i?
Я просто привык к синтаксису java, где в цикле мы прямо указывали класс и обращались с переменной как с объектом класса.
В документации написано, что можно использовать этот метод для итерации через свойства объекта или элементы класса
Цитата:
|
The for..in loop iterates through the properties of an object, or the elements of an array. For example, you can use a for..in loop to iterate through the properties of a generic object (object properties are not kept in any particular order, so properties may appear in a seemingly random order):
|