我不知道代码有什么问题。它工作正常,并且两个数组都有数据。但是我不明白为什么在将数据传递到city字段时,从var _city数组中找到未定义的输出。
我该如何解决?
var city = {
_country : _city
};
答案 0 :(得分:0)
这是因为_country
已在上面定义:
var _country = ["Afghanistan","Bahrain","Canada","Denmark","Ethiopia","France","Germany","Hong Kong","India","Japan"];
将city
中的定义更改为其他内容(也许是country
):
var city = {
country: _city,
};
它将起作用。
答案 1 :(得分:0)
我想知道您所读的内容是否使您相信,通过写您所做的事情,您会神奇地拥有一个对象,该对象用一个数组来键值,第二个值...
从本质上讲,当您完成操作时会发生什么
var city = {
_country : _city
};
创建一个看起来像
的对象var city = {
'_country' : ['your', 'array', 'of', 'cities']
};
也就是说,具有一个键'_country'
的对象已映射到一系列城市。
这说明了为什么您无法定义... city['any string that isn't exactly " _country"'] == undefined
您可能想做的事
var city = _country.reduce(function(acc, cur, idx) { acc[cur] = _city[idx]; return acc; }, {});