如何按日期对对象数组进行排序?

Anthea:

我正在尝试对包含每个对象的对象进行排序:

var recent = [{id: "123",age :12,start: "10/17/13 13:07"} , {id: "13",age :62,start: "07/30/13 16:30"}];

日期格式为:mm/dd/yy hh:mm

我想按日期顺序排序,最新的是第一个。如果日期相同,则应按其时间部分进行排序。

我尝试了以下sort()功能,但无法正常工作:

recent.sort(function(a,b))
{
    a = new Date(a.start);
    b = new Date(b.start);
    return a-b;
});

另外,我应该如何遍历对象以进行排序?就像是:

for (var i = 0; i < recent.length; i++)
    {
        recent[i].start.sort(function (a, b)
        {
            a = new Date(a.start);
            b = new Date(b.start);
            return a-b; 
        } );
    }

数组中可以有任意数量的对象。

克里斯·查尔斯(Chris Charles):

正如评论中指出的那样,最近的定义不是正确的javascript。

但是假设日期是字符串:

var recent = [
    {id: 123,age :12,start: "10/17/13 13:07"}, 
    {id: 13,age :62,start: "07/30/13 16:30"}
];

然后像这样排序:

recent.sort(function(a,b) { 
    return new Date(a.start).getTime() - new Date(b.start).getTime() 
});

W3Schools中有关排序功能的更多详细信息

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章