title: Function should return `0` when no numbers exist in the array
body: <p>Given an array of mixed elements, my function needs to return the smallest number within that array.</p>
  
  <p><strong>Requirements:</strong></p>
  
  <ul>
  <li>If the given array is empty, it should return 0.</li>
  <li>If the array contains no numbers, it should return 0.</li>
  </ul>
  
  <p>I am failing to pass the test where it should return 0 if an array contains no numbers. Here is my code:</p>
  
  <p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
  <div class="snippet-code">
  <pre class="snippet-code-js lang-js prettyprint-override"><code>function findSmallestNumberAmongMixedElements(arr) {
    // your code here
    if (arr.length === 0) return 0;
  
    var shortest = arr.filter(function(a, b) {
      return typeof a === 'number' &amp;&amp; a - b;
    });
  
    return Math.min.apply(null, shortest);
  }
  
  var output = findSmallestNumberAmongMixedElements(['string', 'string']);
  console.log(output); //=&gt; Infinity (expected 0)</code></pre>
  </div>
  </div>
  </p>