TypedArray.prototype.slice()
slice()
メソッドは、元の型付き配列の部分的なコピーを含む新しい型付き配列(新しいバッファーによる)を返します。このメソッドは Array.prototype.slice()
と同じアルゴリズムを持ちます。 TypedArray は、ここでは型付き配列型の一つです。
試してみましょう
構文
slice()
slice(start)
slice(start, end)
引数
start
省略可-
抽出範囲の先頭の位置を示す 0 から始まる添字です。
負の添字を使って、配列の末尾からの相対位置を表すことができます。
slice(-2)
は配列の最後から 2 番目の要素と最後の要素を抽出します。start
を省略した場合、slice
は0
番目の要素から開始します。 end
省略可-
抽出範囲の末尾の 直前 の位置を示す 0 から始まる添字です。
slice
はend
自体は含めず、その直前まで抽出します。slice(1,4)
は 2 番目の要素から 4 番目の要素まで(添字が 1, 2, 3 の要素)を取り出します。負の添字を使って、配列の末尾からの相対位置を表すことができます。
slice(2,-1)
は配列の 3 番目の要素から、最後から 2 番目の要素まで取り出します。end
が省略された場合、slice
は配列の最後 (typedarray.length
) まで取り出します。
返値
抽出された要素が入った新しい型付き配列。
解説
slice
メソッドは元の型付き配列を変更せず、代わりに元の型付き配列の一部のコピーを返します。型付き配列はプリミティブ値しか格納しないので、slice
メソッドが返すコピーは常にディープコピー である。
一方の型付き配列に新しい要素が追加されても、他方の型付き配列に影響はしません。
例
例: 既存の配列の一部を返す
const uint8 = new Uint8Array([1, 2, 3]);
uint8.slice(1); // Uint8Array [ 2, 3 ]
uint8.slice(2); // Uint8Array [ 3 ]
uint8.slice(-2); // Uint8Array [ 2, 3 ]
uint8.slice(0, 1); // Uint8Array [ 1 ]
仕様書
Specification |
---|
ECMAScript Language Specification # sec-%typedarray%.prototype.slice |
ブラウザーの互換性
BCD tables only load in the browser