По определению, порядок ключей в объекте не определен , поэтому вы, вероятно, не сможете сделать это таким образом, чтобы это было ориентировано на будущее. Вместо этого вам следует подумать о сортировке этих ключей, когда объект фактически отображается пользователю. Какой бы порядок сортировки он ни использовал для внутреннего использования, в любом случае это не имеет значения.
По договоренности большинство браузеров сохраняют порядок ключей в объекте в том порядке, в котором они были добавлены. Таким образом, вы можете сделать это, но не ожидайте, что это всегда будет работать:
function sortObject(o) {
var sorted = {},
key, a = [];
for (key in o) {
if (o.hasOwnProperty(key)) {
a.push(key);
}
}
a.sort();
for (key = 0; key < a.length; key++) {
sorted[a[key]] = o[a[key]];
}
return sorted;
}