В JavaScript нет такой вещи, как "массив объектов".Есть Объекты, и есть Массивы (которые, конечно, также являются Объектами).У объектов есть свойства, и свойства не упорядочены каким-либо определенным образом.
Другими словами, если вы получили:
var obj = { a: 1, b: 2, c: 3 };
, нет никакой гарантии, что цикл for ... in
посетитсвойства в порядке "a", "b", "c".
Теперь, если у вас есть массив объектов , например:
var arr = [ { a: 1 }, { b: 2 }, { c: 3 } ];
тогда это обычный массив, и вы можете изменить его.Метод .reverse()
мутирует массив, поэтому его нельзя переназначать.Если у вас do есть массив объектов (или реальный массив значений любого типа), то вы должны , а не использовать for ... in
для его итерации.Используйте числовой индекс.
edit - в полезном комментарии указано, что .reverse()
возвращает ссылку на массив, поэтому переназначение ничего не повредит.