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,052
  • 7
  • 35
  • 58

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
  • 572,313
  • 128
  • 898
  • 1,281
0

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

VuesomeDev
  • 3,986
  • 2
  • 33
  • 43