ArrayBuffer.prototype.slice()
Базовая поддержка Широко доступна
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.
Метод slice() экземпляра ArrayBuffer возвращает новый ArrayBuffer, содержимое которого является копией байтов этого ArrayBuffer от start (включительно) до end (исключая). Если start или end отрицательный, он ссылается на индекс с конца массива, а не с начала.
Попробуйте
// Create an ArrayBuffer with a size in bytes const buffer = new ArrayBuffer(16); const int32View = new Int32Array(buffer); // Produces Int32Array [0, 0, 0, 0] int32View[1] = 42; const sliced = new Int32Array(buffer.slice(4, 12)); // Produces Int32Array [42, 0] console.log(sliced[0]); // Expected output: 42
Синтаксис
slice() slice(start) slice(start, end)
Параметры
-
startНеобязательный - Индекс, с которого начинается извлечение (начиная с 0), преобразованный в целое число.
- Отрицательный индекс отсчитывается с конца буфера — если
-buffer.length <= start < 0, используетсяstart + buffer.length. - Если
start < -buffer.lengthилиstartопущены, используется0. - Если
start >= buffer.length, возвращается пустой буфер.
- Отрицательный индекс отсчитывается с конца буфера — если
-
endНеобязательный - Индекс, по которому заканчивается извлечение (начиная с 0), преобразованный в целое число.
slice()извлекает доend, не включая его.- Отрицательный индекс отсчитывается с конца буфера — если
-buffer.length <= end < 0, используетсяend + buffer.length. - Если
end < -buffer.length, используется0. - Если
end >= buffer.lengthилиendопущены,undefined, используетсяbuffer.length, извлекаются все элементы до конца. - Если
endподразумевает позицию перед или на позиции, которую подразумеваетstart, возвращается пустой буфер.
- Отрицательный индекс отсчитывается с конца буфера — если
Возвращаемое значение
Новый ArrayBuffer, содержащий извлеченные элементы. Он не является изменяемым по размеру, даже если оригинал был.
Примеры
Копирование ArrayBuffer
const buf1 = new ArrayBuffer(8); const buf2 = buf1.slice(0);
Спецификации
Совместимость с браузерами
| Настольные компьютеры | Мобильные | Сервер | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | WebView на iOS | Bun | Deno | Node.js | |
slice |
17 |
12 |
12Нестандартный методArrayBuffer.slice() был удален в Firefox 53 (но стандартизированная версия ArrayBuffer.prototype.slice() сохранена. |
12.1 |
5.1 |
18 |
14Нестандартный методArrayBuffer.slice() был удален в Firefox для Android 53 (но стандартизированная версия ArrayBuffer.prototype.slice() сохранена. |
12.1 |
6 |
1.0 |
4.4 |
6 |
1.0.0 |
1.0 |
0.12.0 |
См. также
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/slice