JSFiddle - React, Tailwind, and code Playground

by Mohammed Fellak

HTML

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>
<dt><strong>Input:</strong></dt>
<dd><h3 id="input">Washington 6857 Holly Park Dr S Seattle, WA 98118-3501 WA</h3></dd>

<br>
<hr>
<br>
<br>

<dt><strong>Output:</strong></dt>
<dd><h2 id="output"></h2></dd>

JavaScript

var zip;
    var lat;
    var lng;
    var geocoder = new google.maps.Geocoder();
    geocoder.geocode({ 'address': zip }, function (results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
            geocoder.geocode({'latLng': results[0].geometry.location}, function(results, status) {
            if (status == google.maps.GeocoderStatus.OK) {
                if (results[1]) {
                    var loc = getCityState(results);
                }
            }
        });
        }
    }); 

function getCityState(results)
    {
        var a = results[0].address_components;
        var city, state;
        for(i = 0; i <  a.length; ++i)
        {
           var t = a[i].types;
           if(compIsType(t, 'administrative_area_level_1'))
              state = a[i].long_name;
           else if(compIsType(t, 'locality'))
              city = a[i].long_name;
        }
        return (city + ', ' + state)
    }

function compIsType(t, s) { 
       for(z = 0; z < t.length; ++z) 
          if(t[z] == s)
             return true;
       return false;
    }

document.getElementById('output').innerText = getCityState('Washington 6857 Holly Park Dr S Seattle, WA 98118-3501 WA');