この記事は編集レビューを必要としています。ぜひご協力ください。
この翻訳は不完全です。英語から この記事を翻訳 してください。
概要
配列オブジェクトや反復オブジェクトから新しいtyped arrayを返します。このメソッドはArray.from()
とほぼ同じです。
構文
TypedArray.from(source[, mapFn[, thisArg]])
where TypedArray is one of:
Int8Array
Uint8Array
Uint8ClampedArray
Int16Array
Uint16Array
Int32Array
Uint32Array
Float32Array
Float64Array
引数
source
- typed arrayに変換する配列オブジェクトか反復オブジェクト
mapFn
- オプション。typed arrayのすべての要素上で呼ぶMap関数。
thisArg
- オプション。
mapFn
を実行するときにthis
として使う値。
説明
TypedArray.from()
によって下記からtyped arraysを生成できます。:
TypedArray.from()
はオプションの引数mapFn
を持ちます。typed arrayの各要素(または作成されているサブクラスオブジェクト)上でmap
関数を実行できます。より明らかに、TypedArray.from(obj, mapFn, thisArg)
はTypedArray.from(obj).map(mapFn, thisArg)
とは同じです。
from()
メソッドのlength
プロパティは1です。
いくつかの微妙な違いがArray.from()
とTypedArray.from()
の間にあります。:
TypedArray.from
に渡された|this|
値がコンストラクタでないなら、TypedArray.from
はTypeError
をスローします。Array.from
は新しいArray
を生成することがデフォルトとなっています。TypedArray.from
は[[Put]]
を使用します。Array.from
は[[DefineProperty]]
を使用します。 従って、Proxy
オブジェクトとともに動作するとき、handler.defineProperty
よりも新しい要素を生成するためにhandler.set
を呼びます。from
がイテレータを取得するとき、TypedArray
バージョンは最初にイテレータからすべての値を集め、その数を使用して|this|
のインスタンスを生成し、そのインスタンスに値を設定します。Array.from
はイテレータから取得して各値を設定し、最後にサイズを設定します。Array.from
がイテレータではない配列を取得するとき、間違いを尊重します。TypedArray.from
は結果が理解しにくいことを保証します。
例
// Set (iterable object) var s = new Set([1, 2, 3]); Uint8Array.from(s); // Uint8Array [ 1, 2, 3 ] // String Int16Array.from("123"); // Int16Array [ 1, 2, 3 ] // Using an arrow function as the map function to // manipulate the elements Float32Array.from([1, 2, 3], x => x + x); // Float32Array [ 2, 4, 6 ] // Generate a sequence of numbers Uint8Array.from({length: 5}, (v, k) => k); // Uint8Array [ 0, 1, 2, 3, 4 ]
仕様
仕様 | 状況 | コメント |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262) The definition of '%TypedArray%.from' in that specification. |
Standard | Initial definition. |
ブラウザ実装状況
機能 | 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) | 未サポート | 未サポート | 未サポート |