在循环中将数据传递给Web服务时键入错误

时间:2013-10-14 03:20:50

标签: javascript ajax web-services

当数组具有一定数量的记录时,我使用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 = [];
         }

1 个答案:

答案 0 :(得分:1)

数组中的元素从0转到length-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时,您会看到错误,因为这超出了数组的末尾。