返回列表 发帖

JavaScript数组sort方法(数组排序)

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

JavaScript代码
  1. <script type="text/javascript">   
  2.     var arr = ["HTML","CSS","JavaScript","DOM"];   
  3.     var arr2 =  [4,3,2,1];   
  4.     var arr3 =  [40,300,2000,10000];   
  5. </script>  
复制代码
测试数组的sort方法
    arr.sort();方法:可以看到,arr数组本来是"HTML","CSS","JavaScript","DOM"。而sort之后将是" <script type="text/javascript"></script> CSS","DOM","HTML","JavaScript" 。

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

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

sort方法的参数
    sort方法可以接受一个参数,这个参数的类型是函数,它也就是排序函数了。我们可以使用它来进行自定义的排序方式。例如,我们可以让上面的数字数组按照大小的方式排序。看下面的JS代码:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">   
  2. <html xmlns="http://www.w3.org/1999/xhtml">   
  3. <head>   
  4. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />   
  5. <title>无标题文档</title>   
  6. <script type="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. </script>   
  19. </head>   
  20. <body>   
  21. <input type="button" value="text" onclick="test();"/>   
  22. </body>   
  23. </html>  
复制代码
在执行arr3.sort(compare)方法时,当我们使用自定义的compare函数进行排序的时候,10000这个最大的数字已经顺利地排到最后了(顺序是:40,300,200,10000)。从代码中我们可以观察出来,sort是根据排序函数的返回值是正还是负来排序的。所以如果compare函数写成 return b - a; 则排序后的顺序为:10000,200,300,40

a=new Array(2,1,4,5,9,7);
document.write(a.join(","));
document.write("<br>");
document.write(a.sort(function(a,b) {return b-a;}).join(",")); //数组倒序排序
document.write(a.sort(function(a,b) {return a-b;}).join(",")); //数组正序排序


数组为字符串时

a=new Array("a2","a1","a4","a5","a9","a7");
document.write(a.join(","));
document.write("<br>");
document.write(a.sort(function(a,b) {return b>a;}).join(",")); //数珠


数组常用函数

toString():把数组转换成一个字符串
toLocaleString():把数组转换成一个字符串
join():把数组转换成一个用符号连接的字符串
shift():将数组头部的一个元素移出
unshift():在数组的头部插入一个元素
pop():从数组尾部删除一个元素
push():把一个元素添加到数组的尾部
concat():给数组添加元素
slice():返回数组的部分
reverse():将数组反向排序
sort():对数组进行排序操作
splice():插入、删除或者替换一个数组元素

TOP

让人头痛JavaScript!真的找时间学习了!
俺在加班中!
我酒量、二两!
             陪你、舍命!

TOP

才加班到八点多,鄙视你

TOP

真钱一起斗地主518.dapai666.com★★真钱游戏★★






金帝棋牌:http://518.dapai666.com  

      金帝真人真钱游戏总部设在英国,持有欧亚洲地区网络游戏竞技牌照,多年游戏平台的一流信誉保证, 采用最先进的防作弊游戏系统,系统更安全!   真钱斗地主,扎金花,梭哈,斗牛游戏是真正公平、公正的对抗游戏, 更具有刺激性和挑战性!  最低充值5元,充值24小时在线,兑换3小时到账。

现大优惠注册送10元即可免费赢大钱,赢了立即兑换,
一次性充值100元将获得5元现金奖励累计!娱乐赚钱两不误!  绝对刺激!  是中小型游戏


玩家的赢钱天堂!

每日精彩活动,奖励天天送,千元大奖等您拿:
     

积分奖励:月,周,日积分奖励,前10名都有奖,千元大奖等您拿
     

抽奖活动:每个玩家当天在游戏中玩够50局即可参加抽奖,100%中奖,最高奖励千元
在线奖励:每个玩家当天在线时间分别达到1小时奖1元,3小时奖5元,6小时奖15元,12小时奖50元
比赛奖励:每天晚上19点-22点举行斗地主,扎金花,梭哈比赛,前10名都有奖!   

时 时 彩:2元买一注,奖金1元-1万元不等。
充值奖励:一次性充值至少100元奖励5元,依次类推..

                                                                  


只要你有本事,一天赚1000不是问题!

赢了拿走,还等什么呢 !

      咨询QQ:1416960583




TOP

返回列表