亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

js模擬實現(xiàn)Array的sort方法

 更新時間:2007年12月11日 18:56:07   投稿:mdxy-dxy  
JavaScript的Array對象有一個sort方法,用于實現(xiàn)對數(shù)組元素的排序,該方法默認按照數(shù)組項ASCII 字符順序升序排列。這篇文章重點給大家介紹js模擬實現(xiàn)Array的sort方法,一起看看吧

JavaScript的Array對象有一個sort方法,用于實現(xiàn)對數(shù)組元素的排序,該方法默認按照數(shù)組項ASCII 字符順序升序排列。  
如[6,7,9,1,-1].sort();執(zhí)行后數(shù)組變?yōu)閇-1,1,6,7,9]。  

對于需要降序排列或非字符串排序,該方法就不能很好的執(zhí)行了。  

當然,sort有一個可選參數(shù),它能幫我們解決這個問題,通過為sort傳入一個函數(shù),sort根據(jù)函數(shù)返回值進行排序。  

數(shù)組為該函數(shù)默認傳入數(shù)組中的兩個元素,如傳入a,b,如果函數(shù)返回值大于0,則排序方式為b,a,如果返回值小于0,則排序結(jié)果為a,b。  

具體含義不好解釋,當初我也對這個sort其到底是怎么排序的不理解。  

如果知道了其實現(xiàn)過程,就對他的排序原理明了了。  

sort的實現(xiàn)其實很像是一個簡單的冒泡排序。  

偶今日對其進行了模擬,看懂這個函數(shù)你一定就明白sort的原理了。  

<script type="text/javascript">  
 <!--  
  var myarray = new Array(8,6,7,9,1,-1,4);  
  var myarray1 = new Array(8,6,7,9,1,-1,4);  
  var sortAsc = function(x,y) { return x-y; };  
  var sortDesc = function(x,y) { return y-x; };  
  Array.prototype.st=function(fn){  
    var t;  
    fn=fn||function(x,y){return x-y};  
    for(var i=0;i<this.length;i++){  
      for(var j=i;j<this.length;j++){  
        if(fn(this[i],this[j])>0){  
          t=this[i];  
          this[i]=this[j];  
          this[j]=t;  
        }  
      }  
    }  
  }  
  myarray.st();  
  alert("默認升序排列:"+myarray);  

  myarray.st(sortDesc);  
  alert("降序排列:"+myarray);  

  myarray.st(sortAsc);  
  alert("升序排列:"+myarray);  
    
  myarray1.sort(function(){return 1}); //注:js默認的sort對此排序結(jié)果跟這個不一樣,其排序方式還暫不理解  
  alert("逆序排列:"+myarray1);    
    
 //-->  
 </script> 

總結(jié)

以上所述是小編給大家介紹的js模擬實現(xiàn)Array的sort方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

最新評論