SYNCERのロゴ
アイキャッチ画像

TypedArray - 型付きの配列

TypedArrayは、型付きの配列です。主にバイナリデータを取り扱うためのオブジェクトです。TypedArrayという名前は、同じインターフェイスを持つ複数のオブジェクトの総称であり、この名前のオブジェクト、コンストラクタはありません。

概要

名前
TypedArray
仕様書
https://tc39.github.io/ecma262/#sec-typedarray-objects

チュートリアル

TypedArrayは下記の総称です。下記のいずれも、TypedArrayの機能を備えています。

var typedArray = new Int8Array() ;	// 1byte
var typedArray = new Uint8Array() ;	// 1byte
var typedArray = new Uint8ClampedArray() ;	// 1byte
var typedArray = new Int16Array() ;	// 2byte
var typedArray = new Uint16Array() ;	// 2byte
var typedArray = new Int32Array() ;	// 4byte
var typedArray = new Uint32Array() ;	// 4byte
var typedArray = new Float32Array() ;	// 4byte
var typedArray = new Float64Array() ;	// 8byte

インスタンスの作成方法は様々です。数値を指定すると、数値にBYTES_PER_ELEMENTの値を掛け合わせたbyteの配列を作成します。

var typedArray = new Uint8Array( 8 ) ;

DataViewと同じように、バッファ(ArrayBuffer)のビューを作成することもできます。

var buffer = new ArrayBuffer( 256 ) ;
var typedArray = new Uint8Array( buffer, 128, 8 ) ;

別のTypedArrayを指定すると、その型に変換してコピーした配列を作成します。

var sourceTypedArray = new Int16Array( 8 ) ;
var typedArray = new Uint8Array( sourceTypedArray ) ;

プロパティ

BYTES_PER_ELEMENT

そのTypedArrayが扱う要素ごとのbyte単位のサイズを返します。

prototype.buffer

自身(ビュー)が参照しているArrayBufferを返すプロパティです。

prototype.byteLength

ビューが参照しているバッファ(ArrayBuffer)のサイズをByte単位で返すプロパティです。

prototype.byteOffset

ビューが参照しているバッファ(ArrayBuffer)のオフセットをByte単位で返すプロパティです。

prototype.BYTES_PER_ELEMENT

そのTypedArrayが扱う要素ごとのbyte単位のサイズを返します。

prototype.constructor

コンストラクタのTypedArrayを返すプロパティです。

prototype.length

配列の長さを返すプロパティです。

メソッド

from()

配列に似たオブジェクトから配列を作るコンストラクタメソッドです。

of()

配列のインスタンスを作るコンストラクタメソッドです。

prototype.copyWithin()

配列の一部分をコピーして、そのまま別部分に上書きするメソッドです。

prototype.entries()

配列からIteratorを作成するメソッドです。

prototype.every()

配列の全ての要素が、指定した条件を満たしているか否かを確認するメソッドです。

prototype.fill()

配列の一部を固定値で埋めるメソッドです。

prototype.filter()

配列から条件を満たさない要素を取り除くメソッドです。

prototype.find()

配列から条件を満たす値を取得するメソッドです。

prototype.findIndex()

配列から条件を満たす要素のインデックス番号を取得するメソッドです。

prototype.forEach()

配列の各要素を材料に処理を実行するメソッドです。

prototype.includes()

配列に指定した要素が存在するか検索するメソッドです。

prototype.indexOf()

配列にある値が存在するか前方から検索し、最初にヒットしたインデックス番号を返すメソッドです。

prototype.join()

配列の各要素を連結した文字列を返すメソッドです。

prototype.keys()

配列の各キーで構成された新しいIteratorを返すメソッドです。

prototype.lastIndexOf()

配列にある値が存在するか後方から検索し、最初にヒットしたインデックス番号を返すメソッドです。

prototype.map()

配列の各要素に関数を実行し、その返り値で構成された新しい配列を作成するメソッドです。

prototype.reduce()

配列の要素を前方から後方にかけて簡約化するメソッドです。

prototype.reduceRight()

配列の要素を後方から前方にかけて簡約化するメソッドです。

prototype.reverse()

配列を逆順にするメソッドです。

prototype.set()

引数に指定した別の配列やTypedArrayを、元の配列の一部にコピーします。

prototype.slice()

配列の一部を切り取るメソッドです。

prototype.some()

配列のいずれかの要素が指定した条件を満たしているか否かを確認するメソッドです。

prototype.sort()

配列を任意のルールでソートするメソッドです。

prototype.subarray()

TypedArrayの一部を切り取って、新しいTypedArrayを作成します。

prototype.toLocaleString()

配列をローカライズした文字列に変換した値を取得するメソッドです。

prototype.toString()

配列を文字列に変換した値を取得するメソッドです。

prototype.values()

配列の各値で構成された新しいIteratorを返すメソッドです。

サポート状況

FeaturesChromeFirefoxSafariEdgeIEOperaiOS SafariAndroid
TypedArray 5.1+ 10+ 11.6+ 4.0+
BYTES_PER_ELEMENT 5.1+ 10+ 11.6+ 4.0+
from() 45+ 38+ 10+× 32+ 10.0+×
of() 45+ 38+ 10+× 32+ 10.0+×
prototype 5.1+ 10+ 11.6+ 4.0+
buffer 5.1+ 10+ 11.6+ 4.0+
byteLength 5.1+ 10+ 11.6+ 4.0+
byteOffset 5.1+ 10+ 11.6+ 4.0+
BYTES_PER_ELEMENT 5.1+ 10+ 11.6+ 4.0+
constructor 5.1+ 10+ 11.6+ 4.0+
length 5.1+ 10+ 11.6+ 4.0+
copyWithin() 45+ 34+ 11.0+× 32+ 11.0+×
entries() 38+ 37+ 10+× 25+ 10.0+×
every() 45+ 37+ 10+× 32+ 10.0+×
fill() 45+ 37+ 10+× 32+ 10.0+×
filter() 45+ 38+ 10+× 32+ 10.0+×
find() 45+ 37+ 10+× 32+ 10.0+×
findIndex() 45+ 37+ 10+× 32+ 10.0+×
forEach() 45+ 38+ 10+× 32+ 10.0+×
includes() 47+ 43+ 10+× 34+ 10.0+×
indexOf() 45+ 37+ 10+× 32+ 10.0+×
join() 45+ 37+ 10+× 32+ 10.0+×
keys() 38+ 37+ 10+× 25+ 10.0+×
lastIndexOf() 45+ 37+ 10+× 32+ 10.0+×
map() 45+ 38+ 10+× 32+ 10.0+×
reduce() 45+ 37+ 10+× 32+ 10.0+×
reduceRight() 45+ 37+ 10+× 32+ 10.0+×
reverse() 45+ 37+ 10+× 32+ 10.0+×
set() 5.1+ 10+ 11.6+ 4.0+
slice() 45+ 38+ 10+× 32+ 10.0+×
some() 45+ 37+ 10+× 32+ 10.0+×
sort() 45+ 46+ 10+× 32+ 10.0+×
subarray() 5.1+ 10+ 11.6+ 4.0+
toLocaleString() 30+ 51+ 7.1+ 11+ 31+ 8.3+×
toString() 30+ 51+ 7.1+ 11+ 31+ 8.3+×
values() 38+ 37+ 10+× 25+ 10.0+×
  • Twitterでシェア
  • Facebookでシェア
  • Google+でシェア
  • はてなブックマークでシェア
  • pocketに保存
  • LINEでシェア
更新履歴
2017年10月1日 (日)
コンテンツを公開しました。