2013-03-21 58 views
0

排序多維數組我有我需要排序數組的數組,但我無法得到它想通了。我的主陣列(mainArr)如下所示:在Actionscript中

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"}); 

回答

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");