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

配列内の要素は から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。これは、配列の末尾を超えているためです。

于 2013-10-14T03:23:50.097 に答える