Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用ajax请求中的值作为jquery中关联数组中的值_Javascript_Jquery - Fatal编程技术网

Javascript 如何使用ajax请求中的值作为jquery中关联数组中的值

Javascript 如何使用ajax请求中的值作为jquery中关联数组中的值,javascript,jquery,Javascript,Jquery,我使用Ziptatic从给定的邮政编码返回城市和州。它以全名的形式返回状态,我试图在使用jquery从ajax请求接收到数据后将状态转换为缩写。我遇到的问题是将结果打印到数组中以使其返回abbrev。这是我的代码,您可以更好地了解我正在尝试做什么 var states = new Array ( {'Alabama':'AL'}, {'Alaska':'AK'}, {'Arizona':'AZ'},

我使用Ziptatic从给定的邮政编码返回城市和州。它以全名的形式返回状态,我试图在使用jquery从ajax请求接收到数据后将状态转换为缩写。我遇到的问题是将结果打印到数组中以使其返回abbrev。这是我的代码,您可以更好地了解我正在尝试做什么

var states = new Array (                    
    {'Alabama':'AL'},          
    {'Alaska':'AK'},
    {'Arizona':'AZ'},          
    {'Arkansas':'AR'},         
    {'California':'CA'},
    {'Colorado':'CO'},         
    {'Connecticut':'CT'},      
    {'Delaware':'DE'},
    {'Florida':'FL'},          
    {'Georgia':'GA'},          
    {'Hawaii':'HI'},
    {'Idaho':'ID'},            
    {'Illinois':'IL'},         
    {'Indiana':'IN'},
    {'Iowa':'IA'},             
    {'Kansas':'KS'},           
    {'Kentucky':'KY'},
    {'Louisiana':'LA'},        
    {'Maine':'ME'},            
    {'Maryland':'MD'},
    {'Massachusetts':'MA'},    
    {'Michigan':'MI'},         
    {'Minnesota':'MN'},
    {'Mississippi':'MS'},      
    {'Missouri':'MO'},         
    {'Montana':'MT'},
    {'Nebraska':'NE'},         
    {'Nevada':'NV'},           
    {'New Hampshire':'NH'},
    {'New Jersey':'NJ'},       
    {'New Mexico':'NM'},       
    {'New York':'NY'},
    {'North Carolina':'NC'},   
    {'North Dakota':'ND'},     
    {'Ohio':'OH'},
    {'Oklahoma':'OK'},         
    {'Oregon':'OR'},           
    {'Pennsylvania':'PA'},
    {'Rhode Island':'RI'},     
    {'South Carolina':'SC'},   
    {'South Dakota':'SD'},
    {'Tennessee':'TN'},        
    {'Texas':'TX'},            
    {'Utah':'UT'},
    {'Vermont':'VT'},          
    {'Virginia':'VA'},         
    {'Washington':'WA'},
    {'West Virginia':'WV'},    
    {'Wisconsin':'WI'},        
    {'Wyoming':'WY'}
);

$(document).ready(function() {
    var zip = $('#zipCode').html().substr(0, 5);
    $.ajax({
      url: 'http://zip.elevenbasetwo.com/v2/US/'+zip,
      cache: false,
      type: 'GET',
      success: function(result, success) {
            $('#city').text(result.city);
            $('#city').children().andSelf().each(function(){
                $(this).html( capitalize_first_letter($(this).text() ) );
            });
            $('#state').text(states[result.state]);
        },
      error: function(result, success) {
            $('#city').hide();
            $('#state').hide();
            $('#zipCode').hide();
        }
    });
});

我的代码以前可以工作,但返回了州的全名。我正在尝试获取结果。声明并在数组中使用它来返回abbrev。

上面的答案是100%正确的,但我们只是为了好玩

var shortcode;

states.forEach(function(state) {
  for (i in state) {
    if (i==result.state) {
      shortcode = state[i];  
    }
  }
})

states应该是一个对象,而不是数组:var states={'Alabama':'AL','Alaska':'AK',etc.};哇,太简单了,我不敢相信我把事情搞砸了。谢谢如果你愿意,你可以作为答案提交。对不起,上面的评论回答了问题。var状态需要是对象而不是数组。谢谢你。