Показать сообщение отдельно
Старый 07.10.2008, 02:34
MonkDead вне форума Посмотреть профиль Отправить личное сообщение для MonkDead Посетить домашнюю страницу MonkDead Найти все сообщения от MonkDead
  № 1  
Ответить с цитированием
MonkDead
 
Аватар для MonkDead

Регистрация: Dec 2007
Сообщений: 204
По умолчанию for in последовательность вывода.

Написал ассоциативный массив на базе Dictionary, ключами которого являются объекты. Написал довольно большой проект с постоянным использованием этого ассоциативного массива. Но возникла проблема: при переборе с помощью for in последовательность вывода не совпадает с последовательностью записи, что в данном случае критично.
Код:
var arrA:ArrayA = new ArrayA();
arrA.add(Class1, Clacc10) // добавляет  ключ: значение
arrA.add(Class2, Clacc20)
arrA.add(Class3, Clacc30)
var key:Object
for (key in arrA)
{
trace(key)
}
trace выводит то Class2, Class1, Class3, то Class3, Class2, Class1 и т.д., вместо Class1, Class2, Class3.

Одним словом, такая же проблема возникает и при переборе простого Object, хотя в хелпе приводят пример:
Код:
var myObject:Object = {firstName:"Tara", age:27, city:"San Francisco"}; 
for (var prop in myObject) { 
    trace("myObject."+prop+" = "+myObject[prop]); 
} 
/* output:
myObject.firstName = Tara 
myObject.age = 27 
myObject.city = San Francisco
*/