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

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

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

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

Направление сортировки - параметр, задающий направление сортировки. Может быть:
desc - по убыванию
asc - по возрастанию
По умолчанию используется сортировка по возрастанию.

Пример
$men[^hash::create[
   $.Serge(26)
   $.Alex
(20)
   $.Mishka
(29)
]]
^men.sort[name;]{$name}
^men.
foreach[name;age]{
    $
name$age
}[
<br />]

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

А можно отсортировать по числу прожитых лет по убыванию (
desc), измените в примере вызов sort на такой…
^men.sort[;age]($age)[desc]

…получится…

    Mishka: 29

    Serge: 26
    Alex: 20




User comments:

coel 03.06.2016 19:21

Прошу, добавьте, пожалуйста, более сложные примеры по сортировке хэшей.


In order to add comments you must register.
Copyright © 1997–2017 Art. Lebedev Studio | http://www.artlebedev.ru Дата обновления: 04.04.2016