TypedArray.from()

The TypedArray.from() static method creates a new typed array from an array-like or iterable object. This method is nearly the same as Array.from().

Try it

Syntax

TypedArray.from(arrayLike, mapFn)
TypedArray.from(arrayLike, mapFn, thisArg)

Where TypedArray is one of:

Parameters

arrayLike

An iterable or array-like object to convert to a typed array.

mapFn Optional

A function to call on every element of the typed array. If provided, every value to be added to the array is first passed through this function, and mapFn's return value is added to the typed array instead. The function is called with the following arguments:

element

The current element being processed in the typed array.

index

The index of the current element being processed in the typed array.

thisArg Optional

Value to use as this when executing mapFn.

Return value

A new TypedArray instance.

Description

TypedArray.from() lets you create typed arrays from:

  • array-like objects (objects with a length property and indexed elements); or
  • iterable objects (objects where you can get its elements, such as Map and Set).

TypedArray.from() has the optional parameter mapFn, which allows you to execute a map() function on each element of the typed array (or subclass object) that is being created. This means that the following are equivalent:

  • TypedArray.from(obj, mapFn, thisArg)
  • TypedArray.from(Array.prototype.map.call(obj, mapFn, thisArg)).

The length property of the from() method is 1.

Differences from Array.from()

Some subtle distinctions between Array.from() and TypedArray.from():

  • If the thisArg value passed to TypedArray.from() is not a constructor, TypedArray.from() will throw a TypeError, where Array.from() defaults to creating a new Array.
  • TypedArray.from() uses [[Set]] where Array.from() uses [[DefineOwnProperty]]. Hence, when working with Proxy objects, it calls handler.set() to create new elements rather than handler.defineProperty().
  • When the source parameter is an iterator, the TypedArray.from() first collects all the values from the iterator, then creates an instance of thisArg using the count, then sets the values on the instance. Array.from() sets each value as it receives them from the iterator, then sets its length at the end.
  • When Array.from() gets an array-like which isn't an iterator, it respects holes. TypedArray.from() will ensure the result is dense.

Examples

From an iterable object (Set)

const s = new Set([1, 2, 3]);
Uint8Array.from(s);
// Uint8Array [ 1, 2, 3 ]

From a string

Int16Array.from("123");
// Int16Array [ 1, 2, 3 ]

Use with arrow function and map

Using an arrow function as the map function to manipulate the elements

Float32Array.from([1, 2, 3], (x) => x + x);
// Float32Array [ 2, 4, 6 ]

Generate a sequence of numbers

Uint8Array.from({ length: 5 }, (v, k) => k);
// Uint8Array [ 0, 1, 2, 3, 4 ]

Specifications

Specification
ECMAScript Language Specification
# sec-%typedarray%.from

Browser compatibility

BCD tables only load in the browser

See also