Zdezorientowany przez zachowanie `map` na tablicach utworzonych przy użyciu` new` [duplikat]
To pytanie ma już odpowiedź tutaj:
Niezdefiniowane wartości w inicjatorze Array (len) 5 odpowiedzi Jestem zdezorientowany wynikamimap
ping nad tablicą utworzoną za pomocąnew
:
function returnsFourteen() {
return 14;
}
var a = new Array(4);
> [undefined x 4] in Chrome, [, , , ,] in Firefox
a.map(returnsFourteen);
> [undefined x 4] in Chrome, [, , , ,] in Firefox
var b = [undefined, undefined, undefined, undefined];
> [undefined, undefined, undefined, undefined]
b.map(returnsFourteen);
> [14, 14, 14, 14]
Oczekiwałema.map(returnsFourteen)
wracać[14, 14, 14, 14]
(taki sam jakb.map(returnsFourteen)
, ponieważ zgodnie ztrona @MDN na tablicach:
Jeśli jedynym argumentem przekazanym do konstruktora Array jest liczba całkowita od 0 do 2 ** 32-1 (włącznie), tworzona jest nowa tablica JavaScript z taką liczbą elementów.
Rozumiem, że to znaczy, żea
powinien mieć 4 elementy.
Czego tu brakuje?