^иассив.sort[ключ;значение]{функция_сортировки_по_строке}
^иассив.sort[ключ;значение]{функция_сортировки_по_строке}[направление_сортировки]
^иассив.sort[ключ;значение](функция_сортировки_по_числу)
^иассив.sort[ключ;значение](функция_сортировки_по_числу)[направление_сортировки]
Метод осуществляет сортировку определенных элементов в массиве по указанной функции.
Функция сортировки - произвольная функция, по текущему значению которой принимается решение о положении поля в отсортированном массиве. Значением функции может быть строка (значения сравниваются в лексикографическом порядке) или число (значения сравниваются как действительные числа).
Направление сортировки - параметр, задающий направление сортировки. Принимает значения:
desc - по убыванию;
asc - по возрастанию.
По умолчанию используется сортировка по возрастанию.
Пример $men[$.name[Serge] $.age(26); $.name[Alex] $.age(20); $.name[Misha] $.age(29)]
^men.sort[;m]{$m.name}
^men.foreach[;m]{
$m.name: $m.age
}[<br />]
В результате записи массива $men будут отсортированы по строке с именем:
Alex: 20 Misha: 29
Serge: 26
А можно отсортировать записи хеша по числу прожитых лет по убыванию (desc), если изменить в примере вызов sort на такой:
^men.sort[;m]($m.age)[desc]
…получится…
Misha: 29 Serge: 26
Alex: 20