0

当数组有一定数量的记录时,我已经用数据填充了一个数组,我使用 Web 服务将数据记录到数据库中。但是,当我调用 Web 服务时,传递的参数出现错误:

错误

TypeError: citizens1[i] is undefined
data:{lat:citizens1[i].lat,

代码

//populates array 


citizens1.push({lat:marker[index].getPosition().lat(),lng:marker[index].getPosition().lng(),socialSecurityNumber:global_citizens[index].socialSecurityNumber});

         if(citizens1.length == 500){            
             console.log('500 records saved');          
             window.clearTimeout( timerHandle);

             for(var i = 1; i = citizens1.length ; i++){

                //array has data since the console.log works
                console.log(citizens1[i].lat +',' +citizens1[i].lng+','+citizens1[i].socialSecurityNumber); 
                 $.ajax({
                        type:'POST',
                        url:'logMovement.htm',
                        data:{lat:citizens1[i].lat,
                              lng:citizens1[i].lng,
                              socialSecurityNumber:citizens1[i].socialSecurityNumber},
                        dataType: 'json',
                        success:function(data){

                            if (data == false){
                                console.log('error occured in logging data');
                            }

                        }

                    });          

             }

             citizens1 = [];
         }
4

1 回答 1

1

数组中的元素从0length-1,所以这一行:

for(var i = 1; i = citizens1.length ; i++){   // NB = is an assignment, == is a comparison 

应该

for(var i = 0; i < citizens1.length ; i++){

i当等于时,您会看到一个错误citizens1.length,因为它超出了数组的末尾。

于 2013-10-14T03:23:50.097 回答