访问数组值会返回' undefined',但我可以通过console.dir()看到这些值?

时间:2014-05-07 17:17:19

标签: javascript arrays object

编辑:以下是我的代码的完整要点(当然已移除API密钥):https://gist.github.com/tconroy/e52e0e7402face8f048e

我在访问存储在JavaScript objects{}中的array[]时遇到了一些问题。

当我console.dir(containerArray)时,我可以看到数组中存储的2个对象,如下图所示:

enter image description here

然而,当我执行

console.log(containerArray)

输出只是空括号[]

当我尝试通过console.dir(containerArray[0]);访问数组索引时,输出为undefined

这是我用来创建对象并将它们放入数组的代码:

var key  = String(decodeURIComponent(addr)),
obj  = {};
obj[key] = json.data.weather;
containerArray.push(obj);

我在这里做错了什么?我需要能够访问存储在数组中的每个对象,并且不确定我在这里做错了什么。

1 个答案:

答案 0 :(得分:1)

根据json.data对象判断,我将在黑暗中拍摄。

您正在某种AJAX回调中加载containerArray数据,但尝试在所述回调之外访问它。

示例:

MyAJAXFunction("url", function(json) {
    containerArray.push(json.data.weather);
});
alert(containerArray[0]); // why undefined?

它可以通过将鼠标悬停在那个小的 i 图标上看到它似乎与console.dir一起使用的原因:它有一个引用到对象,这是在浏览之前更新。