W3cubDocs

/JavaScript

typedArray.slice

The slice() method returns a shallow copy of a portion of a typed array into a new typed array object. This method has the same algorithm as Array.prototype.slice(). TypedArray is one of the typed array types here.

Syntax

typedarray.slice([begin[, end]])

Parameters

begin Optional
Zero-based index at which to begin extraction.
As a negative index, begin indicates an offset from the end of the sequence. slice(-2) extracts the last two elements in the sequence.
If begin is omitted, slice begins from index 0.
end Optional
Zero-based index at which to end extraction. slice extracts up to but not including end.
slice(1,4) extracts the second element up to the fourth element (elements indexed 1, 2, and 3).
As a negative index, end indicates an offset from the end of the sequence. slice(2,-1) extracts the third element through the second-to-last element in the sequence.
If end is omitted, slice extracts to the end of the sequence (arr.length).

Return value

A new typed array containing the extracted elements.

Description

The slice method does not alter. It returns a shallow copy of elements from the original typed array.

If a new element is added to either typed array, the other typed array is not affected.

Examples

Return a portion of an existing typed array

var 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 ]

Polyfill

Since there is no global object with the name TypedArray, polyfilling must be done on an "as needed" basis.

// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.slice
if (!Uint8Array.prototype.slice) {
  Object.defineProperty(Uint8Array.prototype, 'slice', {
    value: Array.prototype.slice
  });
}

If you need to support truly obsolete JavaScript engines that don't support Object.defineProperty, it's best not to polyfill Array.prototype methods at all, as you can't make them non-enumerable.

Specifications

Specification Status Comment
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of '%TypedArray%.prototype.slice' in that specification.
Standard Initial definition.
ECMAScript 2017 Draft (ECMA-262)
The definition of '%TypedArray%.prototype.slice' in that specification.
Draft

Browser compatibility

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support 45 38 (38) No support No support No support
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support No support No support 38 (38) No support No support No support

See also

© 2005–2017 Mozilla Developer Network and individual 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/TypedArray/slice