title: Mapping Over a new Array() without populating it returns an empty array. Why?
body: <h1>Riddle me this.</h1>
  
  <p>Let's say you new up an array of 1,000 elements and want to assign the index of each element as the element's value using <code>.map()</code>. I would expect it to work like so:</p>
  
  <pre><code>new Array(1000).map((element, i) =&gt; i);
  </code></pre>
  
  <p>Here's the problem: the new array returned, while having the required 1,000 elements, is empty, despite assigning the <code>.map()</code>'s return value to be the array index. This can be remedied by chaining <code>.fill(0)</code> like so:</p>
  
  <pre><code>new Array(1000).fill(0).map((element, i) =&gt; i);
  </code></pre>
  
  <h1>But why?</h1>
  
  <p>Why do <code>.map</code> or <code>.filter</code> require a populated array to produce a populated array?</p>