Quick References
      ADO
      ASP
      CSS2
      HTML
      JavaScript
      Jet SQL
      VBScript
      WML
      WMLScript
      WSH
      XHTML
      XML DOM
      XSLT

Features
      Knowledge Base
      Tutorials

Partners
     ZVON.ORG
     XML
     Planet Source Code
     VisualBuilder
     Web Design
     Your HTML Source
     XML/XSLT Forums
     ASPAlliance
     Scripts
     
     Programmers Heaven
     Tek-Tips Forums
     Developer Fusion
     Code Project











METHOD:  Array::sort


Array.sort(compareFunction)
 
The sort method sorts the elements of an array. If no compareFunction argument is supplied, all the elements are converted into strings and sorted lexicographically (i.e. in dictionary order). This means, for example, that 30 would come before 4. The following example is a straight-forward sort of an array of names:
 
Code:
names = ["John", "Andrea", "Charlie", "Sam", "Kate"]
sorted_names = names.sort()
document.write(sorted_names)

 
Output:
Andrea,Charlie,John,Kate,Sam
 
By including a compareFunction argument, you can define the sort order. Two array elements are sorted according to the return value of the compare function: if it is 0, the order of the two elements remains unchanged; if it is greater than 0, the first of the two elements is sorted to a higher index than the second; and if it is less than 0, the second element is sorted to a higher index than the first. The following code creates an array called 'trees' and then, using the user-defined function 'reverseSort', displays the elements sorted in reverse order:
 
Code:
trees = ["oak", "ash", "beech", "maple", "sycamore"]
function reverseSort(a, b)
{
   if(a > b)
      return -1
   if(a < b)
      return 1
   return 0
}
document.write(trees.sort(reverseSort))

 
Output:
sycamore,oak,maple,beech,ash
 
If two numbers are compared, the compareFunction simply needs to subtract the second from the first number:
 
Code:
ages = [30, 25, 47, 19, 21, 8]
function sortNumbers(a, b) { return a - b}
document.write(ages.sort(sortNumbers))

 
Output:
8,19,21,25,30,47

 


Copyright 1999-2005 by Infinite Software Solutions, Inc. All rights reserved.
Trademark Information