この記事は編集レビューを必要としています。ぜひご協力ください。
この翻訳は不完全です。英語から この記事を翻訳 してください。
概要
typed array内のすべての要素で与えられた関数を呼び出した結果をもつ新しいtyped arrayを生成します。このメソッドはArray.prototype.map()
と同じアルゴリズムを持ちます。TypedArrayは、ここではtyped array typesの一つです。
構文
typedarray.map(callback[, thisArg])
引数
callback
- 新しいtyped arrayの要素を生成する関数。この関数は、三つの引数を取ります。:
currentValue
- typed array内で処理されている現在の要素。
index
- typed array内で処理されている現在の要素のインデックス。
array
map
が呼び出される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) | 未サポート | 未サポート | 未サポート |