KumoKairo
04.06.2013, 17:01
Раз уж добрался до форума, вот еще вопрос прошаренным товарищам
Не так давно наткнулся на вопрос на stackoverflow начет сравнения скорости выполнения обычного
for (var i:uint = 0; i < n; i++)
и for in
for (var i:String in something)
Прямую ссылку, к сожалению, потерял, но суть была такая:
Весь трюк итерации по Array с помощью for in заключался в создании объекта i типа String и использовании i в качестве индекса:
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):
Не так давно наткнулся на вопрос на stackoverflow начет сравнения скорости выполнения обычного
for (var i:uint = 0; i < n; i++)
и for in
for (var i:String in something)
Прямую ссылку, к сожалению, потерял, но суть была такая:
Весь трюк итерации по Array с помощью for in заключался в создании объекта i типа String и использовании i в качестве индекса:
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):