2013-10-14 283 views
0

我與結構的陣列通過陣列和打印循環值

var citizens1 = [{lat:null,lng:null,socialSecurityNumber:null}];

我想用一個循環來打印每個元素的值,但是這並沒有爲我工作:

代碼

function animate(index,d) { 

     if (d>eol[index]) { 

     marker[index].setPosition(endLocation[index].latlng);  

     if(marker[index].getPosition() == endLocation[index].latlng){ 
      console.log('Completed'+' '+index); 
     } 


     return; 
    } 

     var p = polyline[index].GetPointAtDistance(d); 
     marker[index].setPosition(p); 
     updatePoly(index,d); 

     timerHandle[index] = setTimeout("animate("+index+","+(d+step)+")", tick); 

     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 = 0; i < citizens1.length ; i++){ 


       console.log(citizens1.lat +',' +citizens1.lng+','+citizens1.socialSecurityNumber); 




      } 

      citizens1 = []; 
     } 

    } 

錯誤

TypeError: citizens1[i].lat is undefined 
+2

是'name'一個錯字就在這裏,或者在你的真正的程序,以及之後的時期? – kojiro

+0

對不起,這是一個錯字將解決此問題 – devdar

+1

你能顯示你的完整代碼,或者是這樣嗎? –

回答

1

citizens1.length = '500'應該citizens1.length == 500

而且

console.log(citizens1.lat +',' +citizens1.lng+','+citizens1.socialSecurityNumber); 

應該

console.log(citizens1[i].lat +',' +citizens1[i].lng+','+citizens1[i].socialSecurityNumber); 

您需要打印數組中每個元素的屬性,而不是數組本身的屬性。

+0

我將修復該問題,但是它仍然無法修復每個元素的打印 – devdar

+0

@dev_darin:請參閱編輯 –

1

我希望你已經初始化以學生爲

Students = [{name:null,age:null,address:null}]; 
+0

我修改了發佈真實代碼的代碼,而不是我的場景的示例 – devdar

1

這條線:

console.log(citizens1.lat +',' +citizens1.lng+','+citizens1.socialSecurityNumber); 

需要有它的數組索引:

console.log(citizens1[i].lat +',' +citizens1[i].lng+','+citizens1[i].socialSecurityNumber);