TypedArray.from()
Baseline
Widely available
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis septembre 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
thislors 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é
lengthet d'éléments indexés) ou - d'objets itérables (par exemple des objets
MapouSet).
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
thispassée àTypedArray.fromn'est pas un constructeur,TypedArray.fromlèvera une exceptionTypeError, tandis queArray.fromcréera un nouvel objetArray. TypedArray.fromutilise[[Set]]tandis queArray.fromutilise[[DefineProperty]]. Ainsi par exemple lorsque des objetsProxysont manipulés la première méthode appellerahandler.setpour créer les nouveaux éléments et la seconde appellerahandler.defineProperty.- Lorsque
sourceest un itérable,TypedArray.fromva 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.fromajoute 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.fromreçoit un objet semblable à un tableau qui n'est pas un itérable, les valeurs non définies sont conservées.TypedArray.fromconstruit 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® 2026 Language Specification> # sec-%typedarray%.from> |
Compatibilité des navigateurs
Chargement…