← 返回首页
TypedArray.prototype.set() - JavaScript | MDN

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

View in English Always switch to English

TypedArray.prototype.set()

Baseline 広く利用可能

この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2015年7月以降、すべてのブラウザーで利用可能です。

set()TypedArray インスタンスのメソッドで、複数の値を指定した配列から入力値を読み込み、型付き配列に格納します。

目次

試してみましょう

// ArrayBuffer をバイト単位のサイズで作成 const buffer = new ArrayBuffer(8); const uint8 = new Uint8Array(buffer); // 値を配列のインデックス 3 からコピーする uint8.set([1, 2, 3], 3); console.log(uint8); // 予想される結果: 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 ]

仕様書

仕様書
ECMAScript® 2027 Language Specification
# sec-%typedarray%.prototype.set

ブラウザーの互換性

ブラウザー互換性一覧表を表示するには、JavaScript を有効にしてください。

関連情報