Большинство браузеров перебирают свойства в порядке, в котором они были добавлены к объекту, но стандарт Javascript говорит, что порядок не определен, поэтому не стоит полагаться на это поведение. Например, некоторое время назад я читал сообщение в блоге о том, что Google Chrome не всегда демонстрировал такое поведение.
Если вам нужна упорядоченная функциональность, вы должны создать для себя новый класс, который может использовать как объектные, так и числовые ключи.