【发布时间】:2014-12-07 08:40:50
【问题描述】:
所以我有一个对象数组,我想按照以下两条规则对它们进行排序(按优先级排序):
- 数字必须按数字顺序排列
- 时间必须按时间顺序排列
所以,我希望对象不仅可以按数字排序,还可以按时间排序。 例如,这样就可以了。
- 005: 凌晨 2 点
- 005:凌晨 3 点
- 005:凌晨 4 点
- 006: 凌晨 2 点
- 006: 凌晨 3 点
这是我们感兴趣的对象部分的结构:
var notSortedData = {
number: number, // it's a string
scheduled_date: scheduled_date, // the format is "YYYY-MM-DD HH:MM:SS"
}
sortedTrains.push(notSortedData);
所以,notSortedData 通过for 循环推入sortedTrains。然后我这样做,但这还不够(因为它不尊重我的第二个条件):
// sorts all the numbers numerically
sortedTrains.sort(function(a, b) {
return parseInt(a.number) - parseInt(b.number);
});
我需要做些什么来确保我的第二个条件也得到遵守?谢谢!
【问题讨论】:
-
我需要做些什么来确保我的第二个条件也得到遵守?试试这个:
var d = parseInt(a.number) - parseInt(b.number); return d == 0? a.scheduled_date - b.scheduled_date : d;。虽然这不考虑按日期/时间排序
标签: javascript jquery arrays sorting javascript-objects