Confundido pelo comportamento do `map` em matrizes criadas usando` new` [duplicate]
Esta pergunta já tem uma resposta aqui:
alores indefinidos no inicializador Array (len) 5 respostas Estou confuso com os resultados demap
sobre uma matriz criada comnew
:
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]
Eu esperavaa.map(returnsFourteen)
para retornar[14, 14, 14, 14]
(o mesmo queb.map(returnsFourteen)
, porque de acordo com oágina @MDN em matrizes:
Se o único argumento transmitido ao construtor Array for um número inteiro entre 0 e 2 ** 32-1 (inclusive), uma nova matriz JavaScript será criada com esse número de elemento
Interpreto que isso significa quea
deve ter 4 elementos.
O que estou perdendo aqui