Сортировка массива объектов в ActionScript 3

Я пытаюсь сортировать array из objects с ActionScript 3.

Массив выглядит так:

var arr:Array = new Array ();
arr.push ({name:"John", date:"20080324", message:"Hi"});
arr.push ({name:"Susan", date:"20090528", message:"hello"});

Можно ли что-то сделать с помощью метода Array.sort(...)?

Ответ 1

Что? Если вы пытаетесь, например, сортировать по имени, затем по дате, использовать Array.sortOn.

arr.sortOn(['name', 'date'])

Ответ 2

Помимо использования sortOn, который будет работать для таких полей, как строки и числа, если у вас есть другие объекты или более сложная логика, вы можете передать функцию сравнения в sort().

Функция сравнения будет вызываться функцией сортировки столько раз, сколько необходимо для сортировки массива. Каждый раз он передает вашей функции два объекта массива. Здесь вы определяете, как эти два объекта сортируются и сообщают об этом функции сортировки, возвращая:

  • отрицательное число: если первый объект приходит перед вторым.
  • положительное число: если второе объект предшествует первому.
  • 0: если оба объекта имеют одинаковый вид заказ.