0

我有一组需要排序的数组,但我无法弄清楚。我的主数组(mainArr)如下所示:

mainArr = ({code:"1", date:"1/2/2001", status:"Active"},
           {code:"2", date:"6/2/2004", status:"Terminated"},
           {code:"3", date:"2/2/2003", status:"Transferred"},
           {code:"4", date:"9/2/2003", status:"Active"});

我需要按对象中的日期对 mainArr 进行排序。该列表最终应该是这样的:

mainArr = ({code:"1", date:"1/2/2001", status:"Active"},
           {code:"3", date:"2/2/2003", status:"Transferred"},
           {code:"4", date:"9/2/2003", status:"Active"}.
           {code:"2", date:"6/2/2004", status:"Terminated"});
4

1 回答 1

0

大多数情况下,可以使用 Array 的sortOn方法。例如,如果您想按“代码”排序:

mainArr.sortOn("code");

这将使用每个对象的代码字段对数组进行排序以确定顺序。

但是,由于您希望按日期排序(以字符串格式),排序会给出不正确的结果(因为按字母顺序和日期顺序不一样)。您可以为数组中的每个对象添加一个新属性以使排序更容易,例如:

{code:"1", date:"1/2/2001", status:"Active"}

以相反的顺序添加日期(sortableDate),它将变为:

{code:"1", date:"1/2/2001", status:"Active", sortableDate:"2001/2/1"}

然后您可以订购:

mainArr.sortOn("sortableDate");
于 2013-03-21T16:22:03.207 回答