array Alt ←

Метод sort

сортировка массива

^иассив.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