Cet appel
[0].map(Array);
vous donne le même résultat que si vous écriviez quelque chose comme ceci:
[0].map(function (value, index, array) {
return Array(value, index, array);
})
La fonction de carte appelle la fonction Array avec trois paramètres: valeur de l'élément, index de l'élément et tableau entier. Cet appel à Arrayrenvoie votre tableau avec 3 éléments: valeur (nombre 0), index (nombre 0), tableau entier ( [0]).
Et ce nouveau tableau est enveloppé dans le tableau d'origine, car vous avez mappé l'élément d'origine (numéro 0) sur le nouvel élément (tableau de 3 éléments)
Remarque: vous pouvez être habitué à n'utiliser que le premier paramètre comme dans
array.map(function (a) { return a * a; });
ou en utilisant seulement deux pour obtenir également l'index
array.map(function (item, index) { return "index=" + index + ", value=" + item; });
Mais vous devez vous rappeler que mapfournit toujours 3 paramètres que vous ignorez simplement dans votre fonction de rappel. C'est aussi la raison pour laquelle un code comme:
[0].map(String);
Retour
["0"]
C'est parce que la fonction String ne se soucie que du premier paramètre et ignore les autres paramètres passés. Si vous appelez
String(11, "Some", "other", "ignored", "parameters")
vous obtiendrez toujours
"11"