この記事は編集レビューを必要としています。ぜひご協力ください。
この翻訳は不完全です。英語から この記事を翻訳 してください。
概要
配列オブジェクトや反復オブジェクトから新しい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) | 未サポート | 未サポート | 未サポート |