编辑:以下是我的代码的完整要点(当然已移除API密钥):https://gist.github.com/tconroy/e52e0e7402face8f048e
我在访问存储在JavaScript objects{}
中的array[]
时遇到了一些问题。
当我console.dir(containerArray)
时,我可以看到数组中存储的2个对象,如下图所示:
然而,当我执行
时 console.log(containerArray)
,
输出只是空括号[]
。
当我尝试通过console.dir(containerArray[0]);
访问数组索引时,输出为undefined
。
这是我用来创建对象并将它们放入数组的代码:
var key = String(decodeURIComponent(addr)),
obj = {};
obj[key] = json.data.weather;
containerArray.push(obj);
我在这里做错了什么?我需要能够访问存储在数组中的每个对象,并且不确定我在这里做错了什么。
答案 0 :(得分:1)
根据json.data
对象判断,我将在黑暗中拍摄。
您正在某种AJAX回调中加载containerArray
数据,但尝试在所述回调之外访问它。
示例:
MyAJAXFunction("url", function(json) {
containerArray.push(json.data.weather);
});
alert(containerArray[0]); // why undefined?
它可以通过将鼠标悬停在那个小的 i 图标上看到它似乎与console.dir
一起使用的原因:它有一个引用到对象,这是在浏览之前更新。