TypedArray.from()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2016.
La méthode TypedArray.from()
crée un nouvel objet TypedArray
à partir d'un objet itérable ou d'un objet semblable à un tableau. Cette méthode est similaire à Array.from()
.
Syntaxe
TypedArray.from(source[, mapFn[, thisArg]])
où TypedArray est l'un de :
Paramètres
source
-
Un objet semblable à un tableau ou un objet itérable, et à partir duquel on souhaite créer un tableau typé.
fonctionMap
-
Argument optionnel, une fonction à appliquer à chacun des éléments du tableau.
thisArg
-
Argument optionnel. La valeur à utiliser pour
this
lors de l'exécution de la fonctionfonctionMap
.
Valeur de retour
Une nouvelle instance de TypedArray
.
Description
TypedArray.from()
permet de créer des tableaux typés à partir :
- d'objets semblables à des tableaux (qui disposent d'une propriété
length
et d'éléments indexés) ou - d'objets itérables (par exemple des objets
Map
ouSet
).
Array.from
possède un paramètre optionnel fonctionMap
, qui permet d'exécuter une fonction map
sur chacun des éléments du tableau typé (ou de l'instance de la classe fille) qui est créé. Autrement dit TypedArray.from(obj, fonctionMap, thisArg)
correspond exactement à TypedArray.from(obj).map(fonctionMap, thisArg)
.
Il existe de légères différences entre Array.from()
et TypedArray.from()
:
- Si la valeur de
this
passée àTypedArray.from
n'est pas un constructeur,TypedArray.from
lèvera une exceptionTypeError
, tandis queArray.from
créera un nouvel objetArray
. TypedArray.from
utilise[[Set]]
tandis queArray.from
utilise[[DefineProperty]]
. Ainsi par exemple lorsque des objetsProxy
sont manipulés la première méthode appellerahandler.set
pour créer les nouveaux éléments et la seconde appellerahandler.defineProperty
.- Lorsque
source
est un itérable,TypedArray.from
va dans un premier temps récupérer toutes ses valeurs, puis initialiser une instance dethis
à l'aide de leur nombre, et enfin ajouter ces valeurs à l'instance.Array.from
ajoute les valeurs au nouvel objet lors du parcours de l'itérateur et ne définit la taille de l'objet qu'en dernière étape. - Si
Array.from
reçoit un objet semblable à un tableau qui n'est pas un itérable, les valeurs non définies sont conservées.TypedArray.from
construit un objet dense en éliminant ces valeurs.
Exemples
// Set (objet itérable)
var s = new Set([1, 2, 3]);
Uint8Array.from(s);
// Uint8Array [ 1, 2, 3 ]
// String
Int16Array.from("123");
// Int16Array [ 1, 2, 3 ]
// En utilisant un fonction fléchée en tant que
// fonctionMap pour manipuler les éléments
Float32Array.from([1, 2, 3], (x) => x + x);
// Float32Array [ 2, 4, 6 ]
// Pour construire une séquence de nombres
Uint8Array.from({ length: 5 }, (v, k) => k);
// Uint8Array [ 0, 1, 2, 3, 4 ]
Spécifications
Specification |
---|
ECMAScript Language Specification # sec-%typedarray%.from |
Compatibilité des navigateurs
BCD tables only load in the browser