← 返回首页
ArrayBuffer.prototype.slice() - JavaScript | MDN

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

View in English Always switch to English

ArrayBuffer.prototype.slice()

Baseline 広く利用可能

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

slice()ArrayBuffer インスタンスのメソッドで、新しい ArrayBuffer を返し、その内容はこの ArrayBuffer の start から end の手前までをコピーします。start または end のいずれかが負の場合、配列の先頭からではなく、末尾からのインデックスを指します。

目次

試してみましょう

// ArrayBuffer をバイト単位のサイズで作成 const buffer = new ArrayBuffer(16); const int32View = new Int32Array(buffer); // Int32Array [0, 0, 0, 0] を作成 int32View[1] = 42; const sliced = new Int32Array(buffer.slice(4, 12)); // Int32Array [42, 0] を作成 console.log(sliced[0]); // 予想される結果: 42

構文

js
slice() slice(start) slice(start, end)

引数

start 省略可

抽出を始める位置のゼロから始まるインデックスで、整数に変換されます

  • インデックスが負の場合、配列の末尾からさかのぼって数えます。 -buffer.length <= start < 0 の場合、 start + buffer.length が使用されます。
  • start < -buffer.length または start が省略された場合は 0 が使用されます。
  • start >= buffer.length の場合、空の配列が返されます。
end 省略可

抽出し終える位置のゼロから始まるインデックスで、整数に変換されます。 slice() は end を含まず、その直前までを抽出します。

  • インデックスが負の場合、配列の末尾からさかのぼって数えます。 -buffer.length <= end < 0 の場合、 end + buffer.length が使用されます。
  • end < -buffer.length の場合は 0 が使用されます。
  • end >= buffer.length または end が省略された場合は buffer.length が使用され、最後まですべての要素が抽出されます。
  • end が start が示す位置よりも前またはその位置を示す場合、空の配列が返されます。

返値

抽出した要素が入った新しい ArrayBuffer です。元がリサイズ可能であってもリサイズ可能ではありません。

ArrayBuffer のコピー

js
const buf1 = new ArrayBuffer(8); const buf2 = buf1.slice(0);

仕様書

仕様書
ECMAScript® 2027 Language Specification
# sec-arraybuffer.prototype.slice

ブラウザーの互換性

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

関連情報