Показать сообщение отдельно
Старый 17.10.2006, 12:19
MerlinTwi вне форума Посмотреть профиль Отправить личное сообщение для MerlinTwi Посетить домашнюю страницу MerlinTwi Найти все сообщения от MerlinTwi
  № 45  
Ответить с цитированием
MerlinTwi
 
Аватар для MerlinTwi

Регистрация: Oct 2003
Адрес: Москва
Сообщений: 328
По умолчанию 50. Разница между for..in и for each..in

В ActionScript 3 добавлен новый вид цикла for each..in который работает аналогично прежнему for..in, но перебираются значения объекта, а не ключи. Пример:
Код:
var object:Object = new Object();
object.name = "senocular";
object.id = 2867;
object.isModerator = true;
for each (var value:* in object){
    trace(value);
}
/* Output:
true
2867
senocular
*/

// А прежний for..in:
for (var key:String in object){
    trace(key + ": " + object[key]); // object[key] is value
}
/* Output:
isModerator: true
id: 2867
name: senocular
*/
Учтите, в цикле for each..in нельзя получить значение ключа.
Так же обратите внимание, что ActionScript 3 в циклах (for..in и for each..in) сохраняет порядок элементов в массиве, а ActionScript 1 и 2 перебирал в порядке обратном добавлению элементов. См. пример:
Код:
var array:Array = new Array();
array[1] = 1;
array[0] = 2;
array[2] = 3;
for (var key:String in array){
    trace("array[" + key + "] = "+ array[key]);
}
Output AS 1 & AS 2:
Код:
array[2] = 3
array[0] = 2
array[1] = 1
Output AS 3:
Код:
array[0] = 2
array[1] = 1
array[2] = 3
__________________
Создатель: Бойцовский клуб | TimeZero | Sky2Fly
Я возьму сам.