Как уже говорили другие, вы имеете дело с ассоциативным объектом.Не массив.У объектов нет порядка.
Если вы хотите оставить все как есть и вместо этого отсортировать массив ключей, вы можете сделать это:
var obj = {
a : {
timestamp: xxxxxx
other : yyyyyy
},
b : {
timestamp: xxxxxx
other : yyyyyy
},
c : {
timestamp: xxxxxx
other : yyyyyy
}
};
var keys = [];
for(var key in obj) {
keys.push(key);
}
keys.sort(function(a, b) {
return obj[a].timestamp - obj[b].timestamp;
});
Теперь вы можете получить доступобъект через значения массива (например, obj [keys [0]], obj [keys [1]] и т. д.).Это предполагает, что временные метки являются числовыми.Если они являются объектами даты, сортировка должна быть такой:
keys.sort(function(a, b) {
return +obj[a].timestamp - (+obj[b].timestamp);
});
Если метки времени на самом деле являются строками, представляющими время даты (например, «2 августа 2012 года»), то это должно быть:
keys.sort(function(a, b) {
return +new Date(obj[a].timestamp) - (+new Date(obj[b].timestamp));
});
Так что используйте все, что имеет больше смысла в вашем сценарии.