Я использую ziptastic для возвращения города и состояния из заданного почтового индекса. Он возвращает состояние как полное имя, и я пытаюсь преобразовать состояние в аббревиатуру, как только данные будут получены из запроса ajax с помощью jquery. Проблема, с которой я столкнулась, заключается в том, чтобы напечатать результат в моем массиве, чтобы вернуть его в аббревиатуру. Вот мой код, чтобы вы могли лучше понять, что я пытаюсь сделать.
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();
}
});
});
Мой код работает раньше, но возвращает полное имя состояния. Я пытаюсь взять result.state и использовать его в массиве, чтобы вернуть аббревиатуру.
Ответ выше на 100% правильный, но там мы идем только ради удовольствия!
var shortcode;
states.forEach(function(state) {
for (i in state) {
if (i==result.state) {
shortcode = state[i];
}
}
})
var states = {'Alabama':'AL', 'Alaska':'AK', etc...};