2013-03-21 2 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

В большинстве случаев, вы можете использовать sortOn метод Array. Например, если вы хотите отсортировать по «код»:

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