JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptのTypedArray.sort()メソッドとは?使い方とサンプルコードを解説

TypedArrayオブジェクトのsort()メソッドは、配列内の要素を昇順(小さい順)に並べ替え、その結果を返します。通常のArrayオブジェクトのsort()メソッドと異なり、引数を指定しない場合は文字列としてではなく数値として比較されるため、数値の並べ替えにそのまま利用できます。

構文

構文は以下のとおりです。

typedArray.sort(compareFunction)

引数のcompareFunctionは省略可能で、ソート順を定義する比較関数を指定できます。省略した場合は数値の昇順でソートされます。

サンプルコード

Int32Arrayの要素をsort()メソッドで昇順に並べ替える例を紹介します。

<html>
<head>
  <title>JavaScript TypedArray sort Method</title>
</head>
<body>
  <script type="text/javascript">
    var typedArray = new Int32Array([11, 5, 13, 4, 15, 3, 17, 2, 19, 8]);
    document.write("ソート前の配列: " + typedArray);
    document.write("<br>");
    var resultantArray = typedArray.sort();
    document.write("ソート後の配列: " + resultantArray);
  </script>
</body>
</html>

実行結果

ソート前の配列: 11,5,13,4,15,3,17,2,19,8
ソート後の配列: 2,3,4,5,8,11,13,15,17,19

バラバラだった数値が、きれいに昇順へ並べ替えられていることが確認できます。

比較関数を使った降順ソート

sort()メソッドに比較関数を渡すことで、降順(大きい順)に並べ替えることも可能です。

var typedArray = new Int32Array([11, 5, 13, 4, 15]);
var descArray = typedArray.sort(function(a, b) {
  return b - a;
});
console.log(descArray); // 結果: 15,13,11,5,4

比較関数が負の値を返すとaが先、正の値を返すとbが先に配置される仕組みを利用しています。

まとめ

TypedArrayのsort()メソッドを使えば、型付き配列の要素を簡単に昇順へ並べ替えられます。比較関数を指定すれば降順ソートや独自の順序でのソートにも対応できるため、数値データの処理において非常に便利なメソッドです。

  1. JavaScriptのarray.includes()メソッドとは?配列に特定の要素が含まれているか判定する方法

    JavaScriptのarray.includes()メソッドは、配列の中に指定した要素が含まれているかどうかを判定するために使用します。戻り値はブール値(true / false)で、要素が見つかればtrue、見つからなければfalseを返します。 構文 array.includes(ele, start) 各パラメータの意味は以下のとおりです。 ele:検索したい要素(必須) start:検索を開始する位置(省略可能)。デフォルトは0で、配列の先頭から検索が始まります それでは、JavaScriptでarray.includes()メソッドを実際に実装してみましょう。 例1:数値の配列

  2. JavaScriptのarray.toLocaleString()関数の使い方|配列をロケール形式の文字列に変換する方法

    array.toLocaleString()関数とはJavaScriptのarray.toLocaleString()関数は、配列の要素を文字列として返し、各要素をカンマなどロケール固有の区切り文字で連結します。引数としてロケール(言語タグ)を指定することもでき、指定した言語・地域の書式に従って文字列へ変換されます。例えば、日付オブジェクトが含まれる配列に対してこの関数を使用すると、「en-GB」や「ja-JP」などのロケールに応じた形式で日付が表示されます。ロケールを省略した場合は、実行環境のデフォルトのロケールが使用されます。主な特徴配列のすべての要素を文字列化し、区切り文字で連結して返す