【JSリファレンス】Uint16Array.prototype.toSorted()

更新日:2024/06/14

初出:ECMAScript2023


Uint16Array.prototype.toSorted()は、Uint16Arrayオブジェクト(Uint16Arrayコンストラクターのインスタンス)プロトタイプチェーンに組み込まれるメソッドです。

Uint16Arrayオブジェクト内で要素を昇順に並び替えますが、コールバック関数によるカスタマイズも可能です
並び替えた結果は、新しいArrayBufferが関連付けられた、新しいUint16Arrayオブジェクトにセットされます。

同様の機能にUint16Array.prototype.sort()がありますが、こちらは元となるUint16Arrayオブジェクトの内容を変更します。

 

■構文

Uint16Array.prototype.toSorted ( comparefn )
  1. comparefn: 省略可能。
    要素の比較を行う関数を指定する。
生成されたUint16Arrayオブジェクト

 

■comparefnの構文

comparefn ( x , y ){ }
  1. x: 現在比較対象となっている要素の値
  2. y: 現在比較対象となっている要素の値
x と y の大小関係を、次の表に従って返す

■戻り値とxとyの関係
大小関係戻り値
y の方が大きい( x < y ) 負の値
x の方が大きい( x < y ) 正の値
同じ値( x = y )0

comparefnの省略時は、抽象比較 x < y が true なら -1、x > y が true なら 1、それ以外なら 0 をcomparefnが返したとみなす。

 

■使用例

x - y の結果を返すと昇順ソート

const typedArray = new Uint16Array([8,2,11]);
  
const typedArray2 = typedArray.toSorted( 
    (x,y) => x - y
 );

console.log( typedArray );  // [ 8, 2, 11 ]
console.log( typedArray2 ); // [ 2, 8, 11 ]

(x - y) * -1 の結果を返すと降順ソート

const typedArray = new Uint16Array([8,2,11]);
  
const typedArray2 = typedArray.toSorted( 
    (x,y) => (x - y) * -1 // (x,y) => y - x でもOK
 );

console.log( typedArray );  // [ 8, 2, 11 ]
console.log( typedArray2 ); // [ 11, 8, 2 ]

更新日:2024/06/14

書いた人(管理人):けーちゃん

スポンサーリンク

記事の内容について

null

こんにちはけーちゃんです。
説明するのって難しいですね。

「なんか言ってることおかしくない?」
たぶん、こんなご意見あると思います。

裏付けを取りながら記事を作成していますが、僕の勘違いだったり、そもそも情報源の内容が間違えていたりで、正確でないことが多いと思います。
そんなときは、ご意見もらえたら嬉しいです。

掲載コードについては事前に動作確認をしていますが、貼り付け後に体裁を整えるなどをした結果動作しないものになっていることがあります。
生暖かい視線でスルーするか、ご指摘ください。

ご意見、ご指摘はこちら。
https://jsref.affi-sapo-sv.com/info.php

 

このサイトは、リンクフリーです。大歓迎です。