JavaScript数组sort方法

来源:百度文库 编辑:神马文学网 时间:2024/04/29 18:02:05
JavaScript数组sort方法关键字: javascript array

    数组对象的sort方法可以按照一定的顺序把数组元素重新排列起来。通常情况下,都是按照字母顺序排列的。

JavaScript代码

 

Js代码
  1. "text/javascript">   
  2.     var arr = ["HTML","CSS","JavaScript","DOM"];   
  3.     var arr2 =  [4,3,2,1];   
  4.     var arr3 =  [40,300,2000,10000];   
  5.   
 

测试数组的sort方法

    arr.sort();方法:可以看到,arr数组本来是"HTML","CSS","JavaScript","DOM"。而sort之后将是" CSS","DOM","HTML","JavaScript" 。

    arr2.sort();方法:而arr2本来是4,3,2,1,而排序之后则是 1,2,3,4 。不过这可不是按照数字的大小来排列的,而仍然是按照字母顺序。从arr3.sort()的结果就可以看出来。

    arr3.sort()方法:数组排列之后的顺序是10000,2000,300,40,10000作为最大的数字却排在了第一位,仅仅是因为它以1开头。

sort方法的参数

    sort方法可以接受一个参数,这个参数的类型是函数,它也就是排序函数了。我们可以使用它来进行自定义的排序方式。例如,我们可以让上面的数字数组按照大小的方式排序。看下面的JS代码:

 

Ruby代码
  1. "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">   
  2. "http://www.w3.org/1999/xhtml">   
  3.   
  4. "Content-Type" content="text/html; charset=gb2312" />   
  5. 无标题文档   
  6. "text/javascript">   
  7.     var arr3 = [40,300,200,10000];   
  8.        
  9.     function compare(a,b)   
  10.     {   
  11.         return b-a;   
  12.     }   
  13.     function test()   
  14.     {   
  15.         arr3.sort(compare);   
  16.         alert(arr3.join());   
  17.     }   
  18.   
  19.   
  20.   
  21. "button" value="text" onclick="test();"/>   
  22.   
  23.   

    在执行arr3.sort(compare)方法时,当我们使用自定义的compare函数进行排序的时候,10000这个最大的数字已经顺利地排到最后了(顺序是:40,300,200,10000)。从代码中我们可以观察出来,sort是根据排序函数的返回值是正还是负来排序的。所以如果compare函数写成 return b - a; 则排序后的顺序为:10000,200,300,40