【JavaScript ECMAScript】Array::Array.prototype.sortインスタンスメソッドの使い方
Array.prototype.sort()インスタンスメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
Array.prototype.sort()メソッドは、配列の要素を並べ替えることを実行するメソッドです。このメソッドは、呼び出された配列の要素をその場で(in-place)ソートし、ソートされた配列自身を返します。
デフォルトの動作では、配列の各要素を文字列に変換し、そのUnicodeコードポイント順に昇順で並べ替えます。例えば、数値の「25」と「100」をソートする場合、文字列としての比較では「100」が「25」よりも前に来ることがあるため、数値のソートには適さない点に注意が必要です。
ソート順をカスタマイズしたい場合は、比較関数(compareFn)を引数として指定することができます。比較関数は、ソートされる2つの要素(aとb)を受け取り、それらの相対的な順序を示す数値を返します。具体的には、aがbより前に来るべきなら負の数、aがbより後に来るべきなら正の数、順序を維持するなら0を返します。この仕組みを利用することで、数値の昇順や降順、オブジェクトの特定のプロパティに基づいたソートなど、あらゆるカスタムソートが可能になります。
このメソッドは元の配列を直接変更するため、もし元の配列の状態を保持しておきたい場合は、ソート前にArray.prototype.slice()などのメソッドを使って配列のコピーを作成してからソートを実行することをお勧めします。Array.prototype.sort()は、データの整理と表示に広く利用される、JavaScriptにおける重要な配列操作メソッドの一つです。
構文(syntax)
1array.sort(compareFunction);
引数(parameters)
compareFn
- compareFn: function(a, b) { /.../ }: 並べ替え順序を決定する比較関数。省略された場合、要素は文字列としてソートされます。
戻り値(return)
Array
Array.prototype.sort() は、配列の要素を並べ替えた「新しい配列」を返します。ただし、並べ替えは元の配列自体も変更します。