sort

sorts datastore

void sort(string|object by, [string dir,string as] );
bystring|objectthe name(s) of property(-ies) by which data will be sorted
dirstringthe sorting direction, "asc" by default
asstringthe type of data, "string" by default

Example

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

Related samples

Details

Usage examples

The method sort can be used with different count of parameters.

The most common use case of the sort method is using the first parameter as the name of a property:

//sorts by the name value; ascending; sorts values as strings
data.sort("#name#","asc","string");
//sorts by the price value; descending; sorts values as numbers
data.sort("#price#","desc","int");

The property name should be included into hashes.

Instead of default sorting types, you can use your own function ( can be used for complex data types ). The parameters of this function are the following:

  • a (object) - the first data item
  • b (object) - the second data item
  • prop(string) - the name of the field that you want to sort by.
function sort_by_length(data1, data2, prop){
    return data1[prop].length > data2[prop].length ? 1 : -1;
}
 
data.sort("#name#", "asc", sort_by_length);

Possible return values of this function are 0, 1, -1.

  • 1 means that the first object is greater than the second object;
  • -1 means that the first object is less than the second object;
  • 0 means that 2 objects are equal.

If you need to access multiple properties of an object during sorting or you need to have some complex sorting logic, use a function as the first parameter.

function my_sorting(a,b){
    //a, b - data objects
    return a.Version > b.Version ? 1 : -1;
}
data.sort(my_sorting, "desc"); //3rd parameter will be ignored

Alternative syntax

You can use a object with sorting settings as the first parameter of the sort method:

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

Sorting directions

The second parameter of the sort method specifies the sorting direction and can have one of the two values:

  • "asc" - for ascending sorting
  • "desc" - for descending sorting

Sorting types

The third parameter of the sort method is a string which represents the desired sorting mode:

  • "int" - compares numeric values;
  • "date" - compares dates;
  • "string" - compares string values;
  • "string_strict" - case-sensitive "string";
  • "text" - compares visible item text (including template), datatable only;
  • "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;
  • "server" - issues a server side request for a sorted dataset;
  • "raw" - basic sorter with simple comparison (a>b and vice versa);
  • or, you can set a custom sorting type.
See also
Back to top
If you have not checked yet, be sure to visit site of our main product Webix javascript website framework and page of javascript list product.