JSのsortメソッドの使い方と原理を分析する
この記事は主に JS の sort メソッドの使用法と原理を分析しています。必要な方はぜひ参考にしてください。以下のエディターで見てみましょう。
ネイティブ JS には、reverse() と sort() という 2 つのメソッドが用意されています。 reverse() については何も言うことはありません。たとえば、次の例は次のとおりです。配列の逆順については何も言うことはありません。
sort() メソッドについて詳しく説明します。
sort メソッドは、パラメーターを渡さずに直接呼び出すこともできます。比較関数については後で説明します。参加する場合は今のところ渡さないことについて。
パラメータが渡されない場合、sort() メソッドはデフォルトの並べ替えメソッドを呼び出します。つまり、最初に各配列項目の toString() 変換メソッドを呼び出し、次に文字列の Unicode エンコード順序に従って文字列を並べ替えます。たとえば、次の例:
var arr = [1, 2, 3, 4, 5, -1, -10, 9, 0]; arr.reverse(); alert(arr); //0, 9, -10, -1, 5, 4, 3, 2, 1
出力結果は想像と異なる場合がありますが、Unicode 文字セットのこれらの番号の順序に従ってソートされます。
それでは、どうすれば彼に私たちのアイデアに従って配列を並べ替えさせることができるでしょうか?そうです、関数をパラメータとして渡して並べ替え方法を指定するだけです。 (パラメータは関数でなければならないことに注意してください。他のものではありません)
この関数は次のように記述できます:
var arr = [1, 2, 3, 15, 22, 33]; arr.sort(); alert(arr); //1, 15, 2, 22, 3, 33
この関数について説明しましょう。 value2 が value1 より大きい場合、この関数は 1 (true) を返します。そして、大きい値 2 が前に配置され、小さい値 1 が後ろに配置されるように交換が実行されます。このようにして、全体の配置が最大から最小の順に並べ替えられます。以下は実際の応用例です:
function cmp (value1, value2) { if (value1 < value2) { return 1; } else if (value1 > value2) { return -1; } else { return 0; } }
実行結果:
cmp 関数を記述する簡略化された方法もあります:
var arr = [1, 2, 3, 15, 22, 33, 44, 55, 0, -1, 22, 55]; function cmp (value1, value2) { if (value1 < value2) { return 1; } else if (value1 > value2) { return -1; } else { return 0; } } arr.sort(cmp); alert(arr);
この関数は、 b が次の場合、上記の関数と同じ効果があります。比較的長い時間の場合は、1 以上の数値、つまり true が返されるため、全体の結果も降順でソートされます。独自のコードを作成して試すこともできます。
それでは、配列内の数値がソートされたので、配列オブジェクト内の特定の属性値に基づいてソートするにはどうすればよいでしょうか?
ここで使用する必要がある JS 関数の機能は、関数を戻り値として使用することです。関数のレイヤーをネストしてオブジェクトの属性名を受け取り、どの属性に従ってソートするかを示すことができます。 cmp 関数 よく理解できない場合は、このコードをデバッグして何が起こっているかを確認できます:
cmp 関数のプロパティは識別子としてのみ機能することがわかりますが、実際には、 arr に渡された内部関数が使用され、内部関数のパラメーターを使用して、比較用のプロパティに基づいて比較する必要のある値が取得されます。
以上がJSのsortメソッドの使い方と原理を分析するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









記事では、JavaScriptライブラリの作成、公開、および維持について説明し、計画、開発、テスト、ドキュメント、およびプロモーション戦略に焦点を当てています。

この記事では、ブラウザでJavaScriptのパフォーマンスを最適化するための戦略について説明し、実行時間の短縮、ページの負荷速度への影響を最小限に抑えることに焦点を当てています。

フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

この記事では、ブラウザ開発者ツールを使用した効果的なJavaScriptデバッグについて説明し、ブレークポイントの設定、コンソールの使用、パフォーマンスの分析に焦点を当てています。

この記事では、ソースマップを使用して、元のコードにマッピングすることにより、Minified JavaScriptをデバッグする方法について説明します。ソースマップの有効化、ブレークポイントの設定、Chrome DevtoolsやWebpackなどのツールの使用について説明します。

この記事では、Javaのコレクションフレームワークの効果的な使用について説明します。 データ構造、パフォーマンスのニーズ、スレッドの安全性に基づいて、適切なコレクション(リスト、セット、マップ、キュー)の選択を強調しています。 コレクションの使用を効率的に最適化します

エントリーレベルのタイプスクリプトチュートリアルをマスターしたら、TypeScriptをサポートするIDEで独自のコードを作成し、JavaScriptにコンパイルできるはずです。このチュートリアルは、TypeScriptのさまざまなデータ型に飛び込みます。 JavaScriptには、NULL、未定義、ブール値、数字、文字列、シンボル(ES6によって導入)とオブジェクトの7つのデータ型があります。 TypeScriptはこれに基づいてより多くのタイプを定義し、このチュートリアルではすべてを詳細に説明します。 ヌルデータ型 JavaScriptのように、Typescriptのnull

このチュートリアルでは、chart.jsを使用してパイ、リング、およびバブルチャートを作成する方法について説明します。以前は、4つのチャートタイプのchart.js:ラインチャートとバーチャート(チュートリアル2)、およびレーダーチャートと極地域チャート(チュートリアル3)を学びました。 パイとリングチャートを作成します パイチャートとリングチャートは、さまざまな部分に分かれている全体の割合を示すのに理想的です。たとえば、パイチャートを使用して、サファリの男性ライオン、女性ライオン、若いライオンの割合、または異なる候補者が選挙で受け取る票の割合を示すことができます。 パイチャートは、単一のパラメーターまたはデータセットの比較にのみ適しています。パイチャートのファンの角度はデータポイントの数値サイズに依存するため、パイチャートは値のあるエンティティをゼロ値で描画できないことに注意してください。これは、割合がゼロのエンティティを意味します
