1

Why is the value of

(new Array(2)).map(function (x, i, a) { return i })

[undefined, undefined] instead of [0, 1]?

August Karlstrom
  • 10,773
  • 7
  • 38
  • 60

2 Answers2

1

new Array(2) generates a sparse array - with no values, but of length 2. It is equivalent to [,,].

Now, Array's .map() method is specified to leave out uninitialised/deleted indices, so you just get back another empty array.

Related question on what you want to do: How to write List/Array comprehensions in JavaScript

Community
  • 1
  • 1
Bergi
  • 630,263
  • 148
  • 957
  • 1,375
0

when you specify the size of an javascript array it fills it with undefined values

VuesomeDev
  • 4,095
  • 2
  • 34
  • 44