Section 24.15. Array.sort( ): sort the elements of an array


24.15. Array.sort( ): sort the elements of an array

ECMAScript v1

24.15.1. Synopsis

array.sort( ) array.sort(orderfunc)

24.15.1.1. Arguments

orderfunc

An optional function used to specify the sorting order.

24.15.1.2. Returns

A reference to the array. Note that the array is sorted in place, and no copy is made.

24.15.2. Description

The sort( ) method sorts the elements of array in place: no copy of the array is made. If sort( ) is called with no arguments, the elements of the array are arranged in alphabetical order (more precisely, the order determined by the character encoding). To do this, elements are first converted to strings, if necessary, so that they can be compared.

If you want to sort the array elements in some other order, you must supply a comparison function that compares two values and returns a number indicating their relative order. The comparison function should take two arguments, a and b, and should return one of the following:

  • A value less than zero, if, according to your sort criteria, a is less than b and should appear before b in the sorted array.

  • Zero, if a and b are equivalent for the purposes of this sort.

  • A value greater than zero, if a is greater than b for the purposes of the sort.

Note that undefined elements of an array are always sorted to the end of the array. This is true even if you provide a custom ordering function: undefined values are never passed to the orderfunc you supply.

24.15.3. Example

The following code shows how you might write a comparison function to sort an array of numbers in numerical, rather than alphabetical order:

 // An ordering function for a numerical sort function numberorder(a, b) { return a - b; } a = new Array(33, 4, 1111, 222); a.sort( );               // Alphabetical sort: 1111, 222, 33, 4 a.sort(numberorder);    // Numerical sort: 4, 33, 222, 1111 




JavaScript. The Definitive Guide
JavaScript: The Definitive Guide
ISBN: 0596101996
EAN: 2147483647
Year: 2004
Pages: 767

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net