このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。
TypedArray.prototype.set()
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月.
set() はTypedArray インスタンスのメソッドで、複数の値を指定した配列から入力値を読み込み、型付き配列に格納します。
In this article
試してみましょう
// Create an ArrayBuffer with a size in bytesconst buffer = new ArrayBuffer(8);const uint8 = new Uint8Array(buffer);// Copy the values into the array starting at index 3uint8.set([1, 2, 3], 3);console.log(uint8);// Expected output: Uint8Array [0, 0, 0, 1, 2, 3, 0, 0]構文
js
set(array)set(array, targetOffset)set(typedarray)set(typedarray, targetOffset)引数
array値のコピーする配列です。コピー元の配列からのすべての値がコピー先の配列にコピーされます。ただし、コピー元の配列の長さにオフセットを加えた長さがコピー先の配列の長さを超えた場合は、例外が発生します。
typedarrayコピー元の配列が型付き配列の場合、2 つの配列は同じ
ArrayBufferを共有することができます。 JavaScript エンジンは、バッファーのコピー元の範囲をコピー先の範囲にインテリジェントにcopy します。targetOffset省略可コピー先の配列へのオフセットで、コピー元の配列からの値の書き込みを開始する位置です。この値を省略した場合は 0 と見なされます(つまり、コピー元の配列はインデックス 0 から始まるコピー先配列の値を上書きします)。
返値
なし (undefined)。
例外
RangeError以下の条件のいずれかで発生します。
targetOffsetが大きすぎるか、arrayまたはtypedarrayが大きすぎるために、要素が配列の末尾を越えて格納されることになる。targetOffsetが負の数である。
例
>set() の使用
js
const buffer = new ArrayBuffer(8);const uint8 = new Uint8Array(buffer);uint8.set([1, 2, 3], 3);console.log(uint8); // Uint8Array [ 0, 0, 0, 1, 2, 3, 0, 0 ]仕様書
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-%typedarray%.prototype.set> |