【发布时间】:2016-07-15 05:48:23
【问题描述】:
我有一个包含聊天列表的 JS 对象。我需要的是根据 last_message_at 值(这是一个纪元(Unix))按 desc 顺序对它们进行排序。
Object的结构如下
var test = {
"138545616542461": {
"otherUser": {
"$id": "128636544201178",
"$priority": null,
"age": 35
},
"last_message_at": 1268482500
},
"138545616542460": {
"otherUser": {
"$id": "128636544201178",
"$priority": null,
"age": 35
},
"last_message_at": 1368482500
}
};
通常,排序后的对象应该在顶部有1368482500。数组可用于排序目的,但最终结果应该是一个对象。
尝试了一些 stackoverflow 示例,但没有成功..
【问题讨论】:
-
如果您希望在对象上对对象的键进行排序,则您使用了错误类型的数据结构。使用数组进行排序,而不是普通对象。
-
如果需要对象而不是数组,这不是错误的数据类型!该程序使用 test["138545616542460"] 而不是一些循环数组的 test.find("138545616542460") 查找元素的速度要快得多。复杂度从 O(n) 下降到 O(1) !!!
标签: javascript sorting object