title: How did the "reduce" function took the 1st element from the given "array" as it's "start" parameter?
body: <p>Can anyone please explain the context here...</p>
  <blockquote>
  <p>If your array contains at least one element, you are allowed to leave off the start argument. The method will take the first element of the array as its start value and start reducing at the second element.</p>
  </blockquote>
  <p>The below code is from <a href="https://eloquentjavascript.net/05_higher_order.html#p_4TujL14aLE" rel="nofollow noreferrer">https://eloquentjavascript.net/05_higher_order.html#p_4TujL14aLE</a></p>
  <pre><code>function reduce(array, combine, start) {
      let current = start;
      for (let element of array) {
          current = combine(current, element);
      }
      return current;
  }
  
  console.log(reduce([1, 2, 3, 4], (a, b) =&gt; a + b, 0));
  // → 10
  </code></pre>
  <p>I understood the above <strong>console.log</strong> expression since the parameters are obvious, but didn't understand the below one,</p>
  <pre><code>console.log([1, 2, 3, 4].reduce((a, b)  =&gt; a + b));
  // → 10
  </code></pre>
  <p><em>Thanks in advance...</em></p>