首先看看 JSON 应该是什么样子
[
{"ShortCode":"US","Name":"United States"},
{"ShortCode":"CA","Name":"Canada"},
{"ShortCode":"AG","Name":"Antigua and/or Barbuda"}
]
代码:
var countries = [];
map = {};
// This is going to make an HTTP post request to the controller
return $.post('/Client/CountryLookup', { query: query }, function (data) {
// Loop through and push to the array
$.each(data, function (i, country) {
map[country.Name] = country;
countries.push(country.Name);
});
$post()
将返回上面的 json & 我需要在每个循环中解析 json
但我不明白这一行 map 对象中将存储什么 map[country.Name] = Country;
假设国家名称是“united state”,那么实际存储将是 map['united state']=country
这意味着什么?
即使在保存代码map{}
以后访问也一样
var selectedShortCode = map[item].ShortCode;
map 如何拥有像 ShortCode
这样的属性??
因此,请详细讨论这种类型的编码技术,并通过更多示例帮助我理解上面的代码。谢谢
最佳答案
你的 map 是一个对象文字,在其他语言中也被定义为散列或字典或关系数组,它基本上将键(Strin)与值(任何东西)相关联,在这种情况下将国家/地区名称与实际国家/地区对象相关联,这就是为什么
map[country.Name] = Country 操作后的 map 结构将是 { "美国":{"ShortCode":"美国","名称":"美国"}, "加拿大":{"短代码":"CA","名称":"加拿大"}, "安提瓜和/或巴布达":{"ShortCode":"AG","Name":"安提瓜和/或巴布达"} }
然后当你这样做
map["United States"]
你得到了
{"ShortCode":"美国","名称":"美国"}
关于javascript - 需要了解 JavaScript 数组、对象和属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24334007/