この記事は編集レビューを必要としています。ぜひご協力ください。
この翻訳は不完全です。英語から この記事を翻訳 してください。
概要
typed array内のすべての要素で与えられた関数を呼び出した結果をもつ新しいtyped arrayを生成します。このメソッドはArray.prototype.map()と同じアルゴリズムを持ちます。TypedArrayは、ここではtyped array typesの一つです。
構文
typedarray.map(callback[, thisArg])
引数
callback- 新しいtyped arrayの要素を生成する関数。この関数は、三つの引数を取ります。:
currentValue- typed array内で処理されている現在の要素。
index- typed array内で処理されている現在の要素のインデックス。
arraymapが呼び出されるtyped array。
thisArg- オプション。
callbackを実行するときthisとして使用する値。
説明
mapメソッドは、typed array内の各要素に対して一度、順番に引数で与えられたcallback関数を呼び出し、その結果から新しいtyped arrayを構築します。callback関数は値を割り当てたtyped arrayのインデックスに対してのみ呼び出されます。すなわち、undefined値である場合や、削除された場合や、値が割り当てられていない場合のインデックスに対しては呼び出されません。
callbackは三つの引数で呼び出されます。: 要素の値、要素のインデックス、処理されるtyped arrayオブジェクト
thisArg引数がmapに与えられたら、呼び出されたとき、thisとして使用するためにcallback関数に渡されます。さもなければ、undefined値が、this値として使用するために渡されます。 callbackによって最終的に観測されるthis値は、the usual rules for determining the this seen by a functionに応じて決定されます。
mapは呼ばれたtyped arrayを変更しません。(しかし、callbackが、呼び出された場合、変更することができます)。
mapによって処理される要素の範囲は、callbackの最初の呼び出しの前に設定されます。mapの呼び出しが始まったあとで配列に追加された要素は、callbackによって処理されません。typed array内に存在している要素が変更されたり、削除された場合、callbackに渡される値は、mapが処理する直前の値です。すなわち、削除された要素は処理されません。
例
typed arrayを平方根のtyped arrayにマッピングする
次のコードでは、typed arrayを受け取り、そのtyped array内の数値の平方根を含む新しいtyped arrayを生成します。
var numbers = new Uint8Array([1, 4, 9]); var roots = numbers.map(Math.sqrt); // roots is now: Uint8Array [1, 2, 3], // numbers is still Uint8Array [1, 4, 9]
引数をもつ関数を使用して数値のtyped arrayをマッピングする
次のコードでは、一つの引数をもつ関数が使用されるときmapがどのように動作するかを示します。元のtyped arrayを通してmapがループするので、その引数は、typed arrayの各要素に自動的に割り当てられます。
var numbers = new Uint8Array[1, 4, 9];
var doubles = numbers.map(function(num) {
return num * 2;
});
// doubles is now Uint8Array [2, 8, 18]
// numbers is still Uint8Array [1, 4, 9]
仕様
| 仕様 | 状況 | コメント |
|---|---|---|
| ECMAScript 2015 (6th Edition, ECMA-262) The definition of 'TypedArray.prototype.map' in that specification. |
Standard | 初期定義。 |
ブラウザ実装状況
| 機能 | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| 基本サポート | 未サポート | 38 (38) | 未サポート | 未サポート | 未サポート |
| 機能 | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| 基本サポート | 未サポート | 未サポート | 38.0 (38) | 未サポート | 未サポート | 未サポート |