jsシミュレーションでArayのsort方法を実現しました。


JavaScriptのArayオブジェクトは配列要素の並べ替えを実現するためのsort方法があります。この方法は標準的に配列項目ASCIIに従っています。 文字列を昇順に並べます。  
[6,7,9,1,-1].sort();実行後の配列は[-1,1,6,7,9]に変わります。  
降順配列または非文字列配列が必要な場合、この方法はうまく実行できません。  
もちろん、sortにはオプションのパラメータがあります。この問題を解決してくれます。sortのために関数が入ってきます。sortは関数の戻り値によって並べ替えられます。  
配列は、関数のデフォルトの着信配列の2つの要素であり、例えば、着信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シミュレーションでArayのsort方法を実现しました。皆さんのために何かご质问がありましたら、メッセージをください。小编はすぐに返事します。ここでも私たちのサイトを応援してくれてありがとうございます。