编辑:这是我的代码的全部要点(当然,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
一起使用的原因:它具有对对象的引用,该对象在浏览之前已更新。