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




Copyright © 1997–2024 Art. Lebedev Studio | http://www.artlebedev.ru Дата обновления: 21.12.2024