TypedArray.prototype.fill()

fill() メソッドは、型付き配列の開始位置から終了位置までのすべての要素を固定値で埋めます。このメソッドのアルゴリズムは Array.prototype.fill() と同じです。ここで TypedArray は、型付き配列型のうちの1つです。

構文

typedarray.fill(value[, start = 0[, end = this.length]])

引数

value
型付き配列を埋める値です。
start 省略可
開始位置です。既定値は 0 です。
end 省略可
終了位置 (の次の位置) です既定値は this.length です。

返値

変更された配列です。

解説

埋める区間は [start, end) です。

fill() メソッドは value, start, end の3つまでの引数を取ります。 startend の各引数は省略可能で、既定値はそれぞれ 0 と、 this オブジェクトの length です。

start が負の数であった場合は、 length+start (length は配列の長さ) として扱われます。 end が負の数であった場合は、 length+end として扱われます。

fill() の使用

new Uint8Array([1, 2, 3]).fill(4);         // Uint8Array [4, 4, 4]
new Uint8Array([1, 2, 3]).fill(4, 1);      // Uint8Array [1, 4, 4]
new Uint8Array([1, 2, 3]).fill(4, 1, 2);   // Uint8Array [1, 4, 3]
new Uint8Array([1, 2, 3]).fill(4, 1, 1);   // Uint8Array [1, 2, 3]
new Uint8Array([1, 2, 3]).fill(4, -3, -2); // Uint8Array [4, 2, 3]

ポリフィル

TypedArray という名前のグローバルオブジェクトはないため、ポリフィルの使用は「必要に応じて」の原則で行う必要があります。以下の「ポリフィル」は、 Array.prototype.fill() のポリフィルと同時に使用してください。

// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.fill
if (!Uint8Array.prototype.fill) {
  Uint8Array.prototype.fill = Array.prototype.fill;
}

仕様書

仕様書
ECMAScript (ECMA-262)
TypedArray.prototype.fill の定義

ブラウザーの互換性

BCD tables only load in the browser

関連情報