JavaScriptTableaux

Array.of()

Crée un nouveau tableau à partir des arguments donnés, quel que soit leur nombre ou leur type.

Renvoie
Un nouveau tableau avec les éléments donnés.
Modifie l’original
Non
Sur cette page

Exemple

#
JavaScript
console.log(Array.of(7))
console.log(Array.of(1, 2, 3))
console.log(Array.of('HTML', 'CSS'))
console.log(Array.of())
Console
[7]
[1, 2, 3]
['HTML', 'CSS']
[]

Définition et utilisation

#

La méthode statique Array.of() crée un tableau dont les éléments sont exactement les arguments passés. Array.of(7) donne un tableau avec un seul élément 7, et Array.of(1, 2, 3) un tableau de trois nombres.

Elle existe pour contourner le comportement étrange du constructeur Array. L’appel new Array(3) avec un seul nombre ne crée pas le tableau [3], mais un tableau vide de longueur 3, et new Array(2.5) lève une erreur. Array.of() traite toujours les arguments comme des éléments.

Au quotidien, on crée les tableaux avec le littéral [1, 2, 3], plus court et plus clair. Array.of() est utile quand vous avez besoin d’une fonction qui construit un tableau à partir d’arguments, et dans les classes héritant d’Array, car elle renvoie une instance de cette classe.

Syntaxe

#
Syntaxe
Array.of(element1, element2, …)

Paramètres

#
  • element1…elementN

    valeurs quelconques

    Valeurs qui deviendront les éléments du tableau. Sans argument, le tableau sera vide.

Plus d’exemples

#
Array.of() et le constructeur Array
JavaScript
console.log(new Array(3).length)
console.log(Array.of(3).length)
console.log(new Array(3, 4))

try {
  new Array(2.5)
} catch (error) {
  console.log(error.name)
}
Console
3
1
[3, 4]
RangeError

Le constructeur Array avec un seul nombre le traite comme une longueur, et avec plusieurs arguments comme des éléments. Array.of() n’a pas cette incohérence.

Piège : Array.of comme callback
JavaScript
const tags = ['html', 'css']

console.log(tags.map((tag) => Array.of(tag)))
console.log(tags.map(Array.of))
Console
[['html'], ['css']]
[['html', 0, ['html', 'css']], ['css', 1, ['html', 'css']]]

map() passe aussi l’indice et le tableau entier à la fonction, et Array.of transforme chaque argument en élément. Enveloppez l’appel dans une fonction fléchée pour ne passer qu’un seul argument.

Compatibilité des navigateurs

#

Largement disponible

Fonctionne dans tous les navigateurs modernes, y compris sur mobile. Vous pouvez l’utiliser sans crainte.

  • Chrome
  • Edge
  • Firefox
  • Safari

Bonnes pratiques

#
  • Pour créer des tableaux normalement, utilisez le littéral []. Utilisez Array.of() quand vous en avez besoin comme fonction.
  • Ne créez pas un tableau avec new Array(n) si vous voulez un tableau contenant le nombre n. Vous obtiendrez un tableau vide de longueur n.
  • Pour un tableau de longueur connue rempli de valeurs, Array.from({ length: n }, fn) est préférable.

Entrées associées

#

Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.