このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

TypedArray.prototype.sort()

Baseline 広く利用可能

この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2016年9月以降、すべてのブラウザーで利用可能です。

sort()TypedArray インスタンスのメソッドで、型付き配列の要素をその場 (in-place) でソートし、その型付き配列を返します。このメソッドは Array.prototype.sort() と同じアルゴリズムですが、既定で文字列としてではなく数値として値をソートする点が異なります。

試してみましょう

const uint8 = new Uint8Array([40, 10, 50, 20, 30]);
uint8.sort();

console.log(uint8);
// 予想される結果: Uint8Array [10, 20, 30, 40, 50]

構文

js
sort()
sort(compareFn)

引数

compareFn 省略可

ソート順を定義する関数です。この関数は以下の引数で呼び出されます。

a

比較のための最初の要素。決して undefined にはなりません。

b

比較のための2つ目の要素。決して undefined にはなりません。

次のような数値を返す必要があります。

  • 負の数は、ab より前に来ることを示す
  • 正の数は、ab の後に来ることを示す
  • 0 または NaNab が等しいことを示す。

覚え方としては、(a, b) => a - b が数値を昇順で並べるということを思い出してください。

省略した場合、型付き配列の要素は数値順にソートされます。

返値

ソートされた型付き配列の元配列への参照です。型付き配列はその場 (in-place) でソートされ,コピーは行われないことに注意してください。

解説

詳細については、 Array.prototype.sort() をご覧ください。このメソッドは汎用的ではなく、型付き配列インスタンスに対してのみ呼び出すことができます。

sort() の使用

他の例は、 Array.prototype.sort() メソッドです。

js
let numbers = new Uint8Array([40, 1, 5, 200]);
numbers.sort();
// Uint8Array [ 1, 5, 40, 200 ]
// ふつうの配列とは異なり、数値的に数値を並べ替えるためには
// 比較関数は必要ありません。

// ふつうの配列は数値で並べ替えるために比較関数を必要とします。
numbers = [40, 1, 5, 200];
numbers.sort();
// [1, 200, 40, 5]

numbers.sort((a, b) => a - b); // 数値を比較
// [ 1, 5, 40, 200 ]

仕様書

仕様書
ECMAScript® 2027 Language Specification
# sec-%typedarray%.prototype.sort

ブラウザーの互換性

関連情報