0

おそらく非同期実行が原因かどうかはわかりません。私の JavaScript の知識はかなり限られているため、なぜ機能しないのか特定できませんが、別の Web ページではまったく同じ構造が実行されます。また、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: 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 answer は私のエラーを強調しています。データは、リクエストによって返されるオブジェクトです。データ自体にアクセスするには、data.data が必要です。したがって、正しいコードは次のようになります。

$.getJSON(products_url, function(data) {
//    console.log(data);
    for (var i=0; i <= data.data.length; i++) {
        console.log(data.data[i]);
    }
})
4

0 に答える 0