javascript - 为什么循环后某行代码不执行?

标签 javascript api flickr

我是 javascript 的新手,正在尝试使用 API,我不知道为什么有些代码行在 for 循环完成后不执行。有人可以帮助我吗?

function jsonFlickrApi(data) {
    if (data.stat != 'ok') {
        alert('no image loaded');
    } else {
        for (var i = 0; i <= data.photos.photo.length; i++) {
            addImage(data.photos.photo[i].url_o);
            var lat = data.photos.photo[i].latitude;
            var lon = data.photos.photo[i].longitude;
            var LatLon = {
                lat: parseFloat(lat),
                lng: parseFloat(lon)
            };

            var markers = new google.maps.Marker({
                'position': LatLon,
                'map': map,
            });

            console.log("i", i);
            photoMarkers.push(markers);
            //It still executes well here.
        };
        //After the loop is finished, it doesn't print out anything to the console.
        console.log("here");
    };
    //The following line doesn't execute too
    fitMap(photoMarkers);

}

最佳答案

该循环未完成,它引发异常。打开网络控制台查看详细信息,您会发现类似以下内容:

Uncaught TypeError: Cannot read property 'url_o' of undefined

数组索引为0通过length-1 ,所以你想要你的 for循环为< data.photos.photo.length ,不是<= data.photos.photo.length 。在您的 <= 的最后一次迭代中循环,data.photos.photo[i]undefined所以试图获取 data.photos.photo[i].url_o 的值抛出。

关于javascript - 为什么循环后某行代码不执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42445462/

相关文章:

java - Flickr auth 与 scribe-java 提供回调 url

java - Flickr API + JAVA - flickrj

javascript - 如何使用javascript中的日期获取特定月份的周数

javascript - 如何监听所有的 fetch API 调用?

javascript - 将谷歌表单响应行复制到新工作表中

javascript - Discord.js 关于消息命令不起作用

api - 如果您想创建具有模块化的应用程序,最好的资源是什么?

javascript - 如何让javascript函数调用两个div

Android:Google Map v2 未显示发布 apk 的 map

java - 用于 Java 的现代 Flickr API