To wezwanie
[0].map(Array);
daje taki sam wynik, jak napisanie czegoś takiego:
[0].map(function (value, index, array) {
return Array(value, index, array);
})
Funkcja map wywołuje funkcję Array z trzema parametrami: wartością elementu, indeksem elementu i całą tablicą. To wywołanie Arrayzwraca tablicę z 3 elementami: wartość (liczba 0), indeks (liczba 0), cała tablica ( [0]).
Ta nowa tablica jest opakowana w oryginalną tablicę, ponieważ zmapowałeś oryginalny element (numer 0) na nowy element (tablica 3 elementów)
Uwaga: możesz przyzwyczaić się do używania tylko pierwszego parametru, takiego jak w
array.map(function (a) { return a * a; });
lub używając tylko dwóch, aby uzyskać również indeks
array.map(function (item, index) { return "index=" + index + ", value=" + item; });
Ale musisz pamiętać, że mapnadal zapewnia 3 parametry, które po prostu ignorujesz w funkcji wywołania zwrotnego. Z tego też powodu kod taki jak:
[0].map(String);
zwroty
["0"]
Dzieje się tak, ponieważ funkcja String dba tylko o pierwszy parametr i ignoruje inne przekazane parametry. Jeśli zadzwonisz
String(11, "Some", "other", "ignored", "parameters")
nadal dostaniesz
"11"