javascript - 需要了解 JavaScript 数组、对象和属性

标签 javascript jquery

首先看看 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/

相关文章:

jquery - 使用 jquery 滚动幻灯片

jquery - 如何使用nestedSortable序列化函数

javascript - Moment.js 总是给出 "a few seconds ago"

javascript - for循环中的延迟

javascript - 如何在单击按钮时获取 slider 值?

jquery - 查找元素中最接近的日期然后添加类

javascript - 在 react js,props 或 state 中使用什么进行双向绑定(bind)?

javascript - RxJS 5 子类化 Observable - 静态方法返回父类的实例

javascript - StandardJs + ES6 扩展类 - 无用的构造函数?

javascript - hasClass() 不起作用