このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

TypedArray.prototype.subarray()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨2015年7月⁩.

subarray()TypedArray インスタンスのメソッドで、同じ ArrayBuffer ストアにおいて、この型付き配列オブジェクトと同じ要素の型をもつ新しい型付き配列を返します。先頭のオフセットは含み、末尾のオフセットは含みません

試してみましょう

const uint8 = new Uint8Array([10, 20, 30, 40, 50]);

console.log(uint8.subarray(1, 3));
// Expected output: Uint8Array [20, 30]

console.log(uint8.subarray(1));
// Expected output: Uint8Array [20, 30, 40, 50]

構文

js
subarray()
subarray(begin)
subarray(begin, end)

引数

begin 省略可

先頭の要素です。この位置は含まれます。この値が指定されていない場合、配列全体が新しいビューに含まれます。

end 省略可

末尾の要素です。この位置は含まれません。この値が指定されていない場合、 begin によって指定された要素から配列の最後まですべての要素が新しいビューに含まれます。

返値

新しい TypedArray オブジェクトです。

解説

beginend によって指定される範囲は、現在の配列に対して有効なインデックスの範囲に丸められます。すなわち、新しい範囲の計算された長さがマイナスなら、ゼロになります。 beginend のどちらかがマイナスなら、配列の最初からではなく、最後からインデックスを参照します。

既存のバッファー上に新しいビューを作っていることにも注意して下さい。すなわち、新しいオブジェクトの内容への変更は、元のオブジェクトに強い影響を与えます。逆もまた同様です。

subarray() メソッドの使用

js
const buffer = new ArrayBuffer(8);
const uint8 = new Uint8Array(buffer);
uint8.set([1, 2, 3]);

console.log(uint8); // Uint8Array [ 1, 2, 3, 0, 0, 0, 0, 0 ]

const sub = uint8.subarray(0, 4);

console.log(sub); // Uint8Array [ 1, 2, 3, 0 ]

仕様書

Specification
ECMAScript® 2026 Language Specification
# sec-%typedarray%.prototype.subarray

ブラウザーの互換性

関連情報