2017-03-05 5 views
0

クライアントのIPアドレスから状態の略語を取得しようとしています。getの値から配列内の状態の略語を見つける方法

私はIPアドレスからの状態を返すためにIPInfo.orgからAPIを使用しているし、それは次のように罰金働いている:私はこのオンラインのような略語リストに多くの州名を見てきました

$.get("https://ipinfo.io", function (response) { 
$state = response.region; 
}, "jsonp"); 

を(https://gist.github.com/mshafrir/2646763 ):

{ 
'Alabama': 'AL', 
'Alaska': 'AK', 
'American Samoa': 'AS', 
'Arizona': 'AZ', 
'Arkansas': 'AR', 
'California': 'CA', 
'Colorado': 'CO', 
'Connecticut': 'CT', 
'Delaware': 'DE', 
'District Of Columbia': 'DC', 
'Federated States Of Micronesia': 'FM', 
'Florida': 'FL', 
'Georgia': 'GA', 
'Guam': 'GU', 
'Hawaii': 'HI', 
'Idaho': 'ID', 
'Illinois': 'IL', 
'Indiana': 'IN', 
'Iowa': 'IA', 
'Kansas': 'KS', 
'Kentucky': 'KY', 
'Louisiana': 'LA', 
'Maine': 'ME', 
'Marshall Islands': 'MH', 
'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', 
'Northern Mariana Islands': 'MP', 
'Ohio': 'OH', 
'Oklahoma': 'OK', 
'Oregon': 'OR', 
'Palau': 'PW', 
'Pennsylvania': 'PA', 
'Puerto Rico': 'PR', 
'Rhode Island': 'RI', 
'South Carolina': 'SC', 
'South Dakota': 'SD', 
'Tennessee': 'TN', 
'Texas': 'TX', 
'Utah': 'UT', 
'Vermont': 'VT', 
'Virgin Islands': 'VI', 
'Virginia': 'VA', 
'Washington': 'WA', 
'West Virginia': 'WV', 
'Wisconsin': 'WI', 
'Wyoming': 'WY' 
} 

が、私は実際には1つの関数からの出力を取得し、出力し、この配列内の正しい省略形をそれを使用する方法のことを確認していません。

これはどのように行われますか? ありがとうございます!

+0

あなたの入力は、状態名と出力が略称になるだろうか。? –

答えて

1

これは非常に簡単です。 JSONオブジェクトのプロパティには、2通りの方法でアクセスできます。

  1. アクセスブラケット表記に(推奨)表記のドットを使用して
  2. アクセス(「」)私はipinfo.ioから状態名を取るgetStateAbbrという関数を作成しました

を使用し、ブラケット表記を使用して、あなたは対応する価値を得る。なぜブラケット表記は動的な値を持つことができるので使用しましたか?

.国を試してみると、undefinedが表示されます。

$.get("https://ipinfo.io", function(response) { 
 
    var state = response.region; 
 
    getStateAbbr(state); 
 
}, "jsonp"); 
 

 
var states = { 
 
    'Alabama': 'AL', 
 
    'Alaska': 'AK', 
 
    'American Samoa': 'AS', 
 
    'Arizona': 'AZ', 
 
    'Arkansas': 'AR', 
 
    'California': 'CA', 
 
    'Colorado': 'CO', 
 
    'Connecticut': 'CT', 
 
    'Delaware': 'DE', 
 
    'District Of Columbia': 'DC', 
 
    'Federated States Of Micronesia': 'FM', 
 
    'Florida': 'FL', 
 
    'Georgia': 'GA', 
 
    'Guam': 'GU', 
 
    'Hawaii': 'HI', 
 
    'Idaho': 'ID', 
 
    'Illinois': 'IL', 
 
    'Indiana': 'IN', 
 
    'Iowa': 'IA', 
 
    'Kansas': 'KS', 
 
    'Kentucky': 'KY', 
 
    'Louisiana': 'LA', 
 
    'Maine': 'ME', 
 
    'Marshall Islands': 'MH', 
 
    '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', 
 
    'Northern Mariana Islands': 'MP', 
 
    'Ohio': 'OH', 
 
    'Oklahoma': 'OK', 
 
    'Oregon': 'OR', 
 
    'Palau': 'PW', 
 
    'Pennsylvania': 'PA', 
 
    'Puerto Rico': 'PR', 
 
    'Rhode Island': 'RI', 
 
    'South Carolina': 'SC', 
 
    'South Dakota': 'SD', 
 
    'Tennessee': 'TN', 
 
    'Texas': 'TX', 
 
    'Utah': 'UT', 
 
    'Vermont': 'VT', 
 
    'Virgin Islands': 'VI', 
 
    'Virginia': 'VA', 
 
    'Washington': 'WA', 
 
    'West Virginia': 'WV', 
 
    'Wisconsin': 'WI', 
 
    'Wyoming': 'WY' 
 
} 
 

 
function getStateAbbr(name) { 
 
    alert(states[name]); 
 
}
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>

0

アクセスブラケット表記/添字を介したプロパティは:

var stateName = response.region; 
var stateAbbreviation = abbreviations[stateName]; 
関連する問題