Javascriptの配列ソートを詳しく解説_基礎知識
JavaScript をしばらく使ったことがある人なら、配列ソート関数 sort は配列プロトタイプのメソッド、つまり array.prototype.sort() や sort(compareFunction) であることを知っているはずです。ここで、compareFunction はMozilla MDN の説明を見てみましょう:
compareFunction が指定されていない場合、要素は文字列に変換され、辞書順 (数値ではなく「辞書」または「電話帳」) で文字列を比較することによって並べ替えられます。たとえば、辞書順では「80」が「9」の前になります。ただし、数値ソートでは 9 は 80 より前に来ます。
以下の簡単な例をいくつか見てください:
// 出力 [1, 2, 3]
console.log([3, 2, 1].sort());
// 出力 ["a", "b", "c"]
console.log(["c", "b", "a"].sort());
// 出力 [1, 2, "a", "b"]
console.log(["b", 2, "a", 1].sort());
上記の例からわかるように、デフォルトでは辞書内でアルファベット順に並べ替えられます。
幸いなことに、sort は次の例のようにカスタム比較関数を受け入れます。
関数compareFunction(a, b) {
if( a > b) {
-1 を返します;
}else if(a < b) {
1 を返します;
}else {
0 を返す;
}
}
//出力 ["zuojj", "Benjamin", "1"]
console.log(["ベンジャミン", "1", "zuojj"].sort(compareFunction));
並べ替えの後に、昇順と降順をどのように制御するかという別の質問があります。
function CompareFunction(flag) {
フラグ = フラグ ? フラグ : "asc";
return function(a, b) {
if( a > b) {
戻りフラグ === "desc" ? -1 : 1;
}else if(a < b) {
戻りフラグ === "desc" 1 : -1;
}else {
0 を返す;
}
};
}
//出力 ["1", "Benjamin", "zuojj"]
console.log(["ベンジャミン", "1", "zuojj"].sort(compareFunction()));
//出力 ["zuojj", "Benjamin", "1"]
console.log(["ベンジャミン", "1", "zuojj"].sort(compareFunction("desc")));
comparFunction のソート規則は次のとおりです:
1.負の数値が返された場合、 a は配列内の低いインデックスにソートされます。
2.正の数値が返された場合、a はより高いインデックスにソートされます。
3.0 が返された場合、並べ替えは必要ありません。
Mozilla MDN からの抜粋を見てみましょう:
sort メソッドの動作は、JavaScript 1.1 と JavaScript 1.2 の間で変更されました。この説明を説明するために、例を見てみましょう:
JavaScript 1.1 では、一部のプラットフォームでは、このメソッドは JavaScript 1.2 のすべてのプラットフォームで機能しません。
JavaScript 1.2 では、このメソッドは未定義の要素を null に変換しなくなり、代わりに配列の上位に並べ替えられます。詳細については、ここをクリックしてください。
var arr = [];
arr[0] = "アリ";
arr[5] = "ゼブラ";
//出力 ["Ant", 5: "Zebra"]
console.log(arr);
//出力 6
console.log(arr.length);
//「Ant*****Zebra」を出力
console.log(arr.join("*"));
// 並べ替え
var sortArr = arr.sort();
//出力 ["Ant", "Zebra"]
console.log(sortArr);
//出力 6
console.log(sortArr.length);
//「Ant*Zebra****」を出力
console.log(sortArr.join("*"));
この記事が sort() メソッドの学習と理解に役立つことを願っています。記事内の不適切な点を批判して修正していただければ幸いです。
参考リンク: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

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

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

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

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

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

ホットトピック









WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 はじめに: 技術の継続的な発展により、音声認識技術は人工知能の分野の重要な部分になりました。 WebSocket と JavaScript をベースとしたオンライン音声認識システムは、低遅延、リアルタイム、クロスプラットフォームという特徴があり、広く使用されるソリューションとなっています。この記事では、WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法を紹介します。

WebSocketとJavaScript:リアルタイム監視システムを実現するためのキーテクノロジー はじめに: インターネット技術の急速な発展に伴い、リアルタイム監視システムは様々な分野で広く利用されています。リアルタイム監視を実現するための重要なテクノロジーの 1 つは、WebSocket と JavaScript の組み合わせです。この記事では、リアルタイム監視システムにおける WebSocket と JavaScript のアプリケーションを紹介し、コード例を示し、その実装原理を詳しく説明します。 1.WebSocketテクノロジー

JavaScript と WebSocket を使用してリアルタイム オンライン注文システムを実装する方法の紹介: インターネットの普及とテクノロジーの進歩に伴い、ますます多くのレストランがオンライン注文サービスを提供し始めています。リアルタイムのオンライン注文システムを実装するには、JavaScript と WebSocket テクノロジを使用できます。 WebSocket は、TCP プロトコルをベースとした全二重通信プロトコルで、クライアントとサーバー間のリアルタイム双方向通信を実現します。リアルタイムオンラインオーダーシステムにおいて、ユーザーが料理を選択して注文するとき

WebSocket と JavaScript を使用してオンライン予約システムを実装する方法 今日のデジタル時代では、ますます多くの企業やサービスがオンライン予約機能を提供する必要があります。効率的かつリアルタイムのオンライン予約システムを実装することが重要です。この記事では、WebSocket と JavaScript を使用してオンライン予約システムを実装する方法と、具体的なコード例を紹介します。 1. WebSocket とは何ですか? WebSocket は、単一の TCP 接続における全二重方式です。

キー名を保持する PHP の高速配列ソート方法: ksort() 関数を使用してキーをソートします。ユーザー定義の比較関数を使用して並べ替えるには、uasort() 関数を使用します。実際のケース: ユーザー ID を保持しながら、ユーザー ID とスコアの配列をスコアごとに並べ替えるには、uasort() 関数とカスタム比較関数を使用できます。

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 はじめに: 今日、天気予報の精度は日常生活と意思決定にとって非常に重要です。テクノロジーの発展に伴い、リアルタイムで気象データを取得することで、より正確で信頼性の高い天気予報を提供できるようになりました。この記事では、JavaScript と WebSocket テクノロジを使用して効率的なリアルタイム天気予報システムを構築する方法を学びます。この記事では、具体的なコード例を通じて実装プロセスを説明します。私たちは

JavaScript チュートリアル: HTTP ステータス コードを取得する方法、特定のコード例が必要です 序文: Web 開発では、サーバーとのデータ対話が頻繁に発生します。サーバーと通信するとき、多くの場合、返された HTTP ステータス コードを取得して操作が成功したかどうかを判断し、さまざまなステータス コードに基づいて対応する処理を実行する必要があります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法を説明し、いくつかの実用的なコード例を示します。 XMLHttpRequestの使用

JS 配列のソートを深く理解するには、sort() メソッドの原理とメカニズム、具体的なコード例が必要です はじめに: 配列のソートは、日常のフロントエンド開発作業で非常に一般的な操作の 1 つです。 JavaScript の配列ソート メソッド sort() は、最も一般的に使用される配列ソート メソッドの 1 つです。しかし、sort() メソッドの原理とメカニズムを本当に理解していますか?この記事では、JS 配列の並べ替えの原理とメカニズムを深く理解し、具体的なコード例を示します。 1.sort()メソッドの基本的な使い方
