sort

сортирует DataStore

void sort(string|object|array|WebixCallback by, [string dir,string as] );
bystring|object|array|WebixCallbackназвание поля, по которому будут отсортированы данные, объект с настройками сортировки или кастомная функция сортировки
dirstringнаправление сортировки, по умолчанию "asc" (по возрастанию)
asstringтип данных, по умолчанию "string"

Example

data.sort("price", "asc");

Related samples

Details

Примеры использования

Метод sort можно использовать с различным количеством параметров.

Наиболее распространенный случай использования метода sort - сортировка данных по полю. Имя поля передается первым параметром:

//сортирует по полю name; по возрастанию; сортирует значения как строки
data.sort("#name#","asc","string");
//сортирует по полю price; по убыванию; сортирует значения как числа
data.sort("#price#","desc","int");

Название свойства должно быть обёрнуто в хэши (#)

Вы также можете использовать свою функцию для сортировки (например, при сортировке данных с вложенными объектами или массивами). Параметры этой функции следующие:

  • a (object) - первый элемент данных
  • b (object) - второй элемент данных
  • prop(string) - название поля, по которому будут отсортированы данные
function sort_by_length(data1, data2, prop){
    return data1[prop].length > data2[prop].length ? 1 : -1;
}
 
data.sort("#name#", "asc", sort_by_length);

Функция должна возвращать следующие значения: 0, 1, или -1.

  • 1 обозначает, что первый объект больше второго;
  • -1 обозначает, что первый объект меньше второго;
  • 0 обозначает, что два объекта равны между собой.

Если вам нужен доступ к нескольким свойствам объекта или вам нужна более сложная сортировка, передайте функцию сортировки первым параметром:

function my_sorting(a,b){
    //a, b - объекты элементов данных
    return a.Version > b.Version ? 1 : -1;
}
data.sort(my_sorting, "desc"); // Третий параметр не будет учтён

Альтернативный синтаксис

Вы можете передать объект с настройками для сортировки первым параметром методу sort:

data.sort({
    as:"string",
    dir:"desc",
    by:"package"
});

Направления сортировки

Второй параметр метода sort указывает направление сортировки и содержит одно из двух значений:

  • "asc" - для сортировки по возрастанию
  • "desc" - для сортировки по убыванию

Типы сортировки

Третий параметр метода sort может быть задан строкой с именем типа сортировки:

  • "int" - сравнивает как числа;
  • "date" - сравнивает как даты;
  • "string" - сравнивает как строки;
  • "string_strict" - то же что и "string", но с учётом регистра;
  • "string_locale" - compares string values based on the locale;
  • "string_locale_strict" - case-sensitive "string_locale";
  • "text_locale" - compares visible item text based on the locale (including template), datatable only;
  • "text" - сравнивает видимые элементы текста и темплейты, если они заданы;
  • "server" - отправляет запрос на сервер (используется при серверной сортировке);
  • "raw" - стандартная сортировка для простого сравнения (a > b, a < b);

Вы также можете задать свой тип сортировки.

See also
Наверх