Questa chiamata
[0].map(Array);
ti dà lo stesso risultato come se avessi scritto qualcosa del genere:
[0].map(function (value, index, array) {
return Array(value, index, array);
})
La funzione Map chiama la funzione Array con tre parametri: valore dell'elemento, indice dell'elemento e intero array. Questa chiamata a Arrayrestituisce un array con 3 elementi: valore (numero 0), indice (numero 0), intero array ( [0]).
E questo nuovo array è avvolto nell'array originale, perché hai mappato l'elemento originale (numero 0) al nuovo elemento (array di 3 elementi)
Nota: potresti essere abituato a utilizzare solo il primo parametro come in
array.map(function (a) { return a * a; });
o usarne solo due per ottenere anche index
array.map(function (item, index) { return "index=" + index + ", value=" + item; });
Ma devi ricordare che mapfornisce ancora 3 parametri che devi semplicemente ignorare nella tua funzione di callback. Questo è anche il motivo per cui il codice come:
[0].map(String);
ritorna
["0"]
È perché la funzione String si interessa solo del primo parametro e ignora gli altri parametri passati. Se chiami
String(11, "Some", "other", "ignored", "parameters")
otterrai ancora
"11"