Image

javascript FOR .. IN

Добавляем в ассоциативный массив какие-то данные по строковому ключу item.type:
if (arrayParts[item.type] == undefined){
    arrayParts[item.type] = new MyPart(item.type); //'tshirt', 'photo'
}

Почему-то при добавлении в ассоциативный массив таких строк поочерёдно как 'tshirt', а потом 'photo', то в последующем вызове итерации for .. in
for (i in this.arrayParts) {
    alert(i);//'photo', 'tshirt' ... :(
}

будет выдавать их в поочерёдности 'photo', а потом 'tshirt'. Каким образом сохранить поочерёдность добавления? И багофича ли это? или у меня что-то?

PS: если добавлять 'book', а потом 'print', то всё ок. Итерация в той же последовательности.