javascript - 为什么我的 for 循环不在我的 getJSON 请求中执行?
问题描述
我不确定这是否可能是由于异步执行。我的 JavaScript 知识非常有限,所以我无法确定为什么不起作用,但在另一个网页上运行完全相同的结构。我还确保了 get 请求找到了数据。
$.getJSON(products_url, function(data) {
// console.log(data) // has length 2
for (var i=0; i <= data.length; i++) {
console.log(data[i]);
}
});
console.log(data) 返回:
{data: Array(2)}
data: Array(2)
0: {desc: "Apples are delicious", images: "https://i5.walmartimages.com/asr/2b4a8c7c-941f-457…809c.jpeg?odnHeight=450&odnWidth=450&odnBg=FFFFFF"}
1: {desc: "Oranges are delicious", images: ""}
length: 2
__proto__: Array(0)
__proto__: Object
更新:解决方案
对于可能遇到此问题的其他人,Vlaz 的回答突出了我的错误。数据是请求返回的对象。要访问数据本身,需要 data.data。因此,正确的代码如下所示:
$.getJSON(products_url, function(data) {
// console.log(data);
for (var i=0; i <= data.data.length; i++) {
console.log(data.data[i]);
}
})
解决方案
推荐阅读
- postgresql - 如何在超过 12 的 postgres 版本上自动生成 Oid
- python - 如何截取整个网页的截图,例如在抓取时需要网页截图的证据?
- excel - 如何在excel中用括号中的数据计算SUM?
- python - 如何提高使用 pypy 占用更多 CPU 时间的正则表达式处理文件的速度?
- python - 为什么在 TPU 上加载 TF 1.15 中的 resnet50 keras 模型不起作用?
- python - 如何在容器上编辑 Docker 端口和参数?(使用适用于 Windows 的 Dockers 桌面)
- java - 如何在 MongoDB 和 Java 的 return 语句中不使用循环来检索特定字段?
- javascript - 使用正则表达式匹配函数名称和参数
- javascript - 如何将输入和php数组中的值放入js并相乘?
- ms-access - MS ACCES 过滤器组合框所有选项