for循环不遍历所有数组

时间:2016-09-26 13:46:05

标签: javascript arrays loops for-loop

我正在尝试使用gmaps.js从json文件对一组邮政编码进行地理编码。

阵列中有101个邮政编码但是当我循环使用它们与gmaps.js一起使用时,它只会迭代到11个。我试着寻找答案,但是我无法弄明白,一切看起来都是正确的,这是我的代码

var getPostcodes = function () {
                    var json = "http://example.co.uk/addresses.json";

                    var request = new XMLHttpRequest();
                    request.open('GET', json, true);

                    request.onload = function () {
                        if (request.status >= 200 && request.status < 400) {
                            // Success!
                            var data = JSON.parse(request.responseText);

                            //GET POSTCODES IN ARRAY
                            var postcodesArray = [];
                            for (var i = 0; i < data.length; i++) {
                                postcodesArray.push(data[i].from_postcode);
                            }
                            var postcodes = postcodesArray.filter(Boolean);

                            //GET LAT/LONG POSITIONS
                            for (var n = 0; n < postcodes.length; n++) {
                                GMaps.geocode({
                                    address: postcodes[n],
                                    callback: function (results, status) {
                                        if (status == 'OK') {
                                            var location = results[0].geometry.location;

                                            var latitude = parseFloat(location.lat().toFixed(8)),
                                                longitude = parseFloat(location.lng().toFixed(8));

                                            console.log(latitude + ' ' + longitude);
                                        }
                                    }
                                });
                            }
                        }
                        else {
                            console.log("failed");
                        }
                    };
                    request.send();
                }

                getPostcodes();

// EDIT 控制台日志

enter image description here

// EDIT codepen链接

http://codepen.io/anon/pen/gwWgzB

1 个答案:

答案 0 :(得分:-1)

Google每秒限制地理编码请求的数量。我建议你在连续请求之间安排睡眠。