Axel Richter: Google maps API - for Schleife / For each

Beitrag lesen

Hallo,

In der Fehler Konsole vom FF kommt "marker_array[i] is undefined"!

Das deutet darauf hin, dass Du das Array marker_array irgendwo größer initialisiert hast, als Du es mit Werten befüllst. Die nicht mit Werten befüllten Array-Elemente sind dann "undefined". Array.lenght bringt nämlich die gesamte Arraylänge, wogegen for each nur die befüllten Elemente durchläuft.

Beispiel (nur für FireFox):

  
marker_array = new Array(4); // Array mit Länge 4  
marker_array[0] = "M1";  
marker_array[1] = "M2";  
marker_array[2] = "M3";  
// aber nur 3 Elemente befüllt  
  
for each(var item in marker_array) {  
 alert(item); //bringt M1, M2, M3  
}  
  
for(var i = 0; i < marker_array.length; i++) { // marker_array.length == 4  
 alert(i + " = " + marker_array[i]); // bringt M1, M2, M3 und undefined  
}  

viele Grüße

Axel