molily: mehrdimmensionales array per each durchlaufen - IE problem

Beitrag lesen

Hallo,

myarray = new Array();
myarray[108] = new Array();

Wenn du das notierst, enthält der Array 109 Elemente, von denen 108 automatisch auf undefined gesetzt werden!

während FF die Schleifen Problemlos durchläuft meldet IE hier schon beim 2. alert nicht mehr "object" sondern undefined.

Ja, weil das Element mit dem Index 0 den Wert undefined enthält.

Firefox macht das anders, weil im Firefox die browsereigene Methode forEach verwendet wird. Die testet, ob hinter der Nummer auch ein »definierter« Wert steckt. In anderen Browsern ruft Prototype einfach eine for-Schleife auf, die den Array von 0 bis myarray.length durchläuft. Also 109 mal.

woran liegt das?
Wie kann ich das Problem beheben oder umgehen?

Wenn du einen Array mit Lücken hast und die Lücken nirgendwo zwischenfunken sollen, dann arbeite mit Objects und for-in-Schleifen (siehe Jeena). Beachte aber, dass die sich dann nicht wie Arrays verhalten. Das Prototype-Pendant ist Hash, wobei du diese Datenstruktur besser in der JSON-Notation schreibst.

Mathias