Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么我能';循环后不访问数组?_Javascript_Google Maps - Fatal编程技术网

Javascript 为什么我能';循环后不访问数组?

Javascript 为什么我能';循环后不访问数组?,javascript,google-maps,Javascript,Google Maps,使用谷歌地图API和AngularJS(1.5.8)。在循环中创建标记后,我无法在之后访问它们。initMap函数中的以下代码: var markers = []; for(var i=0; i<10; i++){ var html = $scope.posts[i].address; var marker = new google.maps.Marker({ map: map, position: {lat: parseFloat($

使用谷歌地图API和AngularJS(1.5.8)。在循环中创建标记后,我无法在之后访问它们。initMap函数中的以下代码:

var markers = [];

for(var i=0; i<10; i++){

    var html = $scope.posts[i].address;

    var marker = new google.maps.Marker({
        map: map,
        position: {lat: parseFloat($scope.posts[i].lat), lng: parseFloat($scope.posts[i].lng)}
    });

    markers.push(marker);

    bindInfoWindow(markers[i], map, infoWindow, html);

}

markers // no error messages, nothing
console.log(markers); // still nothing
var标记=[];
对于(var i=0;i
错误:$scope.posts[i]未定义“

脚本在
var html=$scope.posts[i].address;
行上抛出异常。它在该点停止运行。因此,它永远不会到达
控制台.log(标记);

但是..我想-好吧,但它起作用了(地图上有标记)

你在一个循环中。一些标记正在显示,然后其中一个值未定义(不是第一个值!),因此你得到一个异常,脚本停止

您可能可以通过循环到数组的
长度来解决此问题,而不是硬编码的
10

,请稍后再考虑该错误


始终先处理第一个错误。它们通常是导致后续错误的原因。

这是怎么回事:“标记//没有错误消息,什么都没有。”"?marker在将其推送到markers之前是否会返回一些内容?bindInfoWindow方法的作用是什么?请同时发布您的角度代码。或者任何其他细节,因为它看起来不清晰question@Ionut,我的意思是,在markers变量处并没有反应。我以为浏览器的控制台会显示错误或其他东西。但什么都并没有。@49volro,为什么您想这样使用它吗?这没有意义。
console.log(markers);//即使是
[]也没有任何东西需要输出
表示空数组或
未定义
表示数组已被未定义的值覆盖。如果没有输出任何内容,则最有可能的解释是没有首先调用函数。
for(var i=0; i<10; i++){
for(var i=0; i<$scope.posts.length; i++)