TypedArray.prototype.map()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2016.

map()TypedArray インスタンスのメソッドで、与えられた関数を呼び出された型付き配列のすべての要素に対して呼び出し、その結果からなる新しい型付き配列を生成します。このメソッドは、 Array.prototype.map() と同じアルゴリズムです。

試してみましょう

構文

js
map(callbackFn)
map(callbackFn, thisArg)

引数

callbackFn

型付き配列のそれぞれの要素に対して実行する関数。その返値は、新しい型付き配列の単一の要素として追加されます。この関数は以下の引数で呼び出されます。

element

型付き配列で現在処理されている要素です。

index

現在処理中の要素の型付き配列内におけるインデックスです。

array

map() が呼び出されてた型付き配列です。

thisArg 省略可

callbackFn を実行する際に this として使用する値。反復処理メソッドを参照してください。

返値

各要素がコールバック関数の結果である新しい型付き配列です。

解説

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

型付き配列を平方根の型付き配列にマッピング

次のコードは型付き配列を取り、最初の型付き配列にある数値の平方根からなる新しい型付き配列を生成します。

js
const numbers = new Uint8Array([1, 4, 9]);
const roots = numbers.map(Math.sqrt);
// roots の内容は [1, 2, 3] となる
// numbers の内容は [1, 4, 9] のまま

引数を含む関数を使用して型付き配列をマッピングする

次のコードは、1 つの引数を必要とする関数を使用するときに map() がどのように動作するかを示しています。引数は元の配列を通した map() ループとして、配列の各要素に自動的に割り当てられます。

js
const numbers = new Uint8Array([1, 4, 9]);
const doubles = numbers.map((num) => num * 2);
// doubles は Uint8Array [2, 8, 18] となる
// numbers は Uint8Array [1, 4, 9] のまま

仕様書

Specification
ECMAScript Language Specification
# sec-%typedarray%.prototype.map

ブラウザーの互換性

BCD tables only load in the browser

関連情報