ГлавнаяActionScript 3 — «100 советов» › Разница между for..in и for each..in

Разница между for..in и for each..in

June 19th, 2006
В 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

Категория: ActionScript 3 — «100 советов» Ярлыки: ,

Смотрите также

getBounds() и getRect() Значения по умолчанию для параметров функции
  1. Пока без комментариев.
  1. Пока нету.