Свойства объекта не имеют определенного порядка. Они не могут быть отсортированы. Массивы имеют порядок. Если вы хотите, чтобы ключи были в определенном порядке, вам придется поместить их в массив и определить порядок.
Вы можете извлечь все имена свойств (например, ключи) из объекта, отсортировать их и затем выполнить итерацию свойств в указанном порядке, если хотите. Чтобы сделать это, вы должны сделать это так:
var obj = {
obj1: 39,
obj2: 6,
obj3: 'text'
obj4: 'text'
obj5: 0
};
var keys = [];
for (var prop in obj) {
keys.push(prop);
}
keys.sort();
for (var i = 0; i < keys.length; i++) {
var key = keys[i];
var value = obj[key];
// do whatever you want to do with key and value
}
Как вы увидите, это требует дополнительной итерации для получения и сортировки списка ключей. Я не знаю, как обойти это. Получить ключи можно в современном браузере с obj.keys()
, но внутри все равно это, вероятно, итерация свойств объекта, и вам понадобится прокладка, чтобы это работало в старых браузерах.