国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

js模擬實現Array的sort方法

2019-11-21 01:51:10
字體:
來源:轉載
供稿:網友

JavaScript的Array對象有一個sort方法,用于實現對數組元素的排序,該方法默認按照數組項ASCII 字符順序升序排列。  
如[6,7,9,1,-1].sort();執行后數組變為[-1,1,6,7,9]。  

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

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

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

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

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

sort的實現其實很像是一個簡單的冒泡排序。  

偶今日對其進行了模擬,看懂這個函數你一定就明白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對此排序結果跟這個不一樣,其排序方式還暫不理解    alert("逆序排列:"+myarray1);         //-->   </script> 

總結

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 凌源市| 罗山县| 沂水县| 南阳市| 蕉岭县| 镶黄旗| 邻水| 施秉县| 镇雄县| 庄浪县| 武陟县| 溧水县| 马公市| 邢台市| 垫江县| 乌拉特后旗| 荣昌县| 右玉县| 阿坝县| 正镶白旗| 金华市| 丘北县| 旬邑县| 呼玛县| 宜城市| 宜宾市| 阿城市| 晋中市| 定襄县| 朝阳区| 呼和浩特市| 金堂县| 揭西县| 浦北县| 新和县| 仁怀市| 镶黄旗| 晋中市| 厦门市| 广南县| 永顺县|