TypedArray.prototype.subarray() - 指定位置から新しいTypedArrayを作る
TypedArray.prototype.subarray()は、TypedArrayの一部を切り取って、新しいTypedArrayを作成します。TypedArrayがバッファ(ArrayBuffer)のビューの場合、元の配列と新しい配列は同じバッファを参照していることになります。
概要
説明
%TypedArray%.prototype.subarray( begin, end )
第1引数(begin)には、切り取りの開始位置を指定します。
第2引数(end)には、切り取りの終了位置を指定します。省略した場合、最後まで切り取ります。
開始位置、終了位置は、それぞれ正の数、または負の数で指定できます。区切り線を入れる位置でイメージして下さい。負の数の場合、-0
は指定できません。最後まで切り取りたい場合は正の数で指定するか、または値を省略して下さい。


デモ
TypedArray.prototype.subarray()のデモです。同じバッファを参照しているため、メソッドで作成した新しい配列(newTypedArray)と元の配列(typedArray)はリンクしているのを確認できます。subarray()からslice()に変えると、リンクしないのを確認しましょう。
<!-- このコードは編集できます。 -->
<!DOCTYPE html>
<html>
<head>
<style>
body {
white-space: pre-wrap ;
}
</style>
</head>
<body>
<script>
/** try it! **/
var buffer = new ArrayBuffer( 8 ) ;
var typedArray = new Uint8Array( buffer ) ;
var newTypedArray = typedArray.subarray( 2, 6 ) ;
var a = newTypedArray ;
newTypedArray[0] = 0xff ;
newTypedArray[1] = 0xff ;
newTypedArray[2] = 0xff ;
newTypedArray[3] = 0xff ;
var b = typedArray ;
/** try it! **/
var results = { a:a, b:b, } ;
for( var name in results ) {
console.log( name, results[name] ) ;
document.body.appendChild( new Text( name + " = " + JSON.stringify( results[name], null, " " ) + "\n\n" ) ) ;
}
</script>
</body>
</html>
サポート状況
Chrome | Firefox | Safari | Edge | IE | Opera | iOS Safari | Android |
---|---|---|---|---|---|---|---|
● | ● | ● 5.1+ | ● | ● 10+ | ● 11.6+ | ● | ● 4.0+ |
関連記事
- TypedArray.prototype.slice()
- TypedArray.prototype.slice()は、配列の一部を切り取るメソッドです。新しい配列を作成して返し、元の配列には変更がありません。
- TypedArray
- TypedArrayは、型付きの配列です。主にバイナリデータを取り扱うためのオブジェクトです。TypedArrayという名前は、同じインターフェイスを持つ複数のオブジェクトの総称であり、この名前のオブジェクト、コンストラクタはありません。
- ページのURLを取得する
- ページのURLを取得するには、locationオブジェクトの各プロパティを参照します。
- Array.prototype.splice()
- Array.prototype.splice()は、配列の一部を置換するメソッドです。配列の一部を「削除」して、その位置に新しく要素を「挿入」します。元の配列を変更します。