Confundido por el comportamiento de `map` en matrices creadas usando` new` [duplicar]
Esta pregunta ya tiene una respuesta aquí:
Valores indefinidos en el inicializador de matriz (len) 5 respuestas Estoy confundido por los resultados demap
ping sobre una matriz creada connew
:
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]
Esperabaa.map(returnsFourteen)
regresar[14, 14, 14, 14]
(lo mismo queb.map(returnsFourteen)
, porque según laMDN página en matrices:
Si el único argumento pasado al constructor de Array es un número entero entre 0 y 2 ** 32-1 (inclusive), se crea una nueva matriz de JavaScript con ese número de elementos.
Interpreto que significa quea
debe tener 4 elementos.
¿Que me estoy perdiendo aqui