title: Google Places API does not return subpremise (Apt) if it is the first in the returned array
body: <p>If the address comes back like this "#301, 1833 N 105th St, Shoreline, WA 98133, USA", then the Apt number #301, is not taken as the subpremise. When the address is "1918 8th Ave #3200, Seattle WA, 89101, USA" The #3200 is taken as the Apt. </p>
  
  <p>The entire address is being brought back with both cases, but Google does not recognize Apt numbers when they are the first value. I am working gin Angular and JavaScript so any advice within these technologies would be great. </p>
  
  <pre><code>for (i=0; i &lt; place.address_components.length; i++) {
                          comp = place.address_components[i];
                          // State
                          if (!location.details.State &amp;&amp; comp.types.indexOf('administrative_area_level_1') !== -1) {
                              location.details.State = comp.short_name;
                          }
                          // City
                          else if (!location.details.City &amp;&amp; comp.types.indexOf('locality') !== -1) {
                              location.details.City = comp.long_name;
                          }
                          // Zip
                          else if (!location.details.Zip &amp;&amp; comp.types.indexOf('postal_code') !== -1) {
                              location.details.Zip = comp.long_name;
                          }
                          // Street Name
                          else if (!location.details.Street.Name &amp;&amp; comp.types.indexOf('route') !== -1) {
                              location.details.Street.Name = comp.long_name;
                          }
                          // Street Number
                          else if (!location.details.Street.Number &amp;&amp; comp.types.indexOf('street_number') !== -1) {
                              location.details.Street.Number = comp.long_name;
                          }
                          // Apt
                          else if (!location.details.Apt &amp;&amp; comp.types.indexOf('subpremise') !== -1) {
                              location.details.Apt = comp.long_name;
                          }
                      }
                      location.details.Street = (location.details.Street.Number + ' ' +location.details.Street.Name).trim();
                      if (!location.details.Street) {
                          location.details.Street = location.formatted_address_line1;
                      }
  }
  </code></pre>