序文
配列のソートは、特にバックエンドでは非常に一般的な要件です。もちろん、フロントエンドにはこの要件もあります。
もちろん、配列ソートの既製の方法があります。それはsort()メソッドです。
最初にこれを見始めましょう。
標準の回答、ソートメソッド
var arr = [45,98,67,57,85,6,58,83,48,18]; console.log( 'original array'); console.log(arr); console.log( 'sort method sorteded searted searted searted searted); console.log(arr.Sort(a、b){return ab}); small '); console.log(arr.sort(function(a、b){return ba})); console.log('ソートメソッドは大部分からsmallにソートされた '); console.log(arr.sort(function(a、b){return ba}));操作結果は次のとおりです。
ここで、ソートはデフォルトでアルファベット順にソートされることに注意する必要があります。したがって、番号をアレンジするとき、カスタム関数が必要です。
上記のようにコード
関数(a、b){return ab}
これは、小さいから大規模な並べ替え関数です。それは非常にシンプルに見えますが、私は理解していないので、私は自分のアイデアに従ってソートを実装します〜
メソッドソートのための私の答え
var arr = [45,98,67,57,85,6,58,83,48,18]; console.log( 'original array'); console.log( 'arr'); console.log( 'for method sorteded eded a small'); console.log( 'arrsortmintomax(arrsole); log(' log); small '); console.log(' arrsortmaxtomin(arr)); // array関数arrminnum(arr){var minnum = infinity、index = -1; for(var i = 0; i <arr.length; i ++){if(arrnum = arr = arr = arr = i; if([i] <minnum); {"minnum":minnum、 "index":index ":index};} // array関数で小さい並べ替えの結果を返しますarrsortmintomax(arr){var arrnew = []; var arrold = arr.concat(); {arrnew.push(arrminnum(arrold).minnum); arrold.splice(arrminnum(arrold).index、1)}; return(arrnew);} // array関数arrmaxnum(arrmaxnum){var maxnum = -infinity、index = -1; (arr [i]> maxnum){maxnum = arr [i]; index = i;}}; return {"maxnum":maxnum、 "index":index};} //アレイ関数で大部分から小さく並べ替えの結果を返しますarrsortmaxtomin( arr.length; i ++){arrnew.push(arrmaxnum(arrold).maxnum); arrold.splice(arrmaxnum(arrold).index、1);}; console.log(arrnew);}操作結果を下の図に示します
私の方法の知識ポイント
1.関数が複数のデータを返す必要がある場合、JSONオブジェクト形式を使用する方が便利です。たとえば、return {"minnum":minnum、 "index":index}上記;
2.メソッドvar arrold = arrを使用して配列をコピーし、arroldで動作する場合、arrの元の配列に影響します。 JavaScriptはプリミティブタイプと参照タイプに分割されているため(JavaとC#に類似)。配列は参照タイプです。 Aroldは参照を取得するため、Arroldの変更はArrに影響します。
アレイをコピーする方法(i)var arrold = arr.concat(); 、原理:concat()関数は、複数の配列をスプライスするために使用される関数です。この執筆方法は、それ自体をスプライシングすることと同等です。つまり、コピーします。
配列をコピーする方法(2)var arrold = arr.slice(0)。原理:Slice()関数は、配列を傍受する関数です。値を0に設定することは、それらすべてを傍受することです。これはコピーに相当します。
3。Splice()メソッドは、配列の要素を挿入、削除、または交換するために使用されます。アレイ内の削除された場所を使用する機能は次のとおりです。
4.私の方法とソート方法の違い。
私の方法は元の配列を変更しませんが、ソートは元の配列に基づいた変更です。
私のメソッドは新しい配列を返し、元の配列は消えたり変更されたりしていません。 (それは上記の文と同じようです...)
5.ソートは、プログラミングの非常に基本的で非常に重要な知識ポイントです。ソートソートは、大量のデータを実行するときに比較的低くなります。もちろん、私の方法の効率も非常に低いです。
この記事は、http://blog.csdn.net/fungleo/article/details/51555590で再現されています
上記は、編集者が紹介したJavaScriptソートアレイソートメソッドと自己実装ソートメソッドのコンテンツ全体です。それがあなたに役立つことを願っています。ご不明な点がございましたら、メッセージを残してください。編集者はあなたに時間内に返信します。 Wulin Network Webサイトへのご支援に感謝します。