hash Alt ←

Метод sort

Сортировка хеша [3.4.4]

^хеш.sort[ключ;значение]{функция_сортировки_по_строке}
^хеш.sort[ключ;значение]{функция_сортировки_по_строке}[направление_сортировки]
^хеш.sort[ключ;значение](функция_сортировки_по_числу)
^хеш.sort[ключ;значение](функция_сортировки_по_числу)[направление_сортировки] 

Метод осуществляет сортировку элементов в хеше по указанной функции.

Функция сортировки — произвольная функция, по текущему значению которой принимается решение о положении поля в отсортированном хеше. Значением функции может быть строка (значения сравниваются в лексикографическом порядке) или число (значения сравниваются как действительные числа).

Направление сортировки — параметр, задающий направление сортировки. Принимает значения:

desc — по убыванию;
asc — по возрастанию.

По умолчанию используется сортировка по возрастанию.

Пример

$men[^hash::create[
	$.Serge(26)
	$.Alex(20)
	$.Misha(29)
]]

^men.sort[name;]{$name}

^men.foreach[name;age]{
	$name: $age
}[<br>]

В результате записи хеша $men будут отсортированы по строке имени:

Alex: 20
Misha: 29
Serge: 26

А можно отсортировать записи хеша по числу прожитых лет по убыванию (desc), если изменить в примере вызов sort на такой:

^men.sort[;age]($age)[desc]

получится:

Misha: 29
Serge: 26
Alex: 20