编辑:这是我的代码的全部要点(当然,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);


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

最佳答案

json.data对象来看,我将在黑暗中进行拍摄。

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

例:

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


将鼠标悬停在小图标上可以看到它与console.dir一起使用的原因:它具有对对象的引用,该对象在浏览之前已更新。

07-27 14:02