Hi,
Und bei manchen Engines wie SpiderMonkey hat man nochmal ganz eigene Methoden
http://www.melez.com/mykzilla/2009/04/syntaxes-for-iterating-arrays-in.html
Was es nicht alles gibt...
Ich persönlich mag die Iterationen mit for(var i ... i++)
nicht sonderlich und vermeide sie wo immer möglich.
Um z.B. nur mal Array-Elemente abzuholen, die man im Array nicht weiter braucht, kann man doch viel schöner sowas schreiben:
while(array.length) { tu_was_mit( array.shift() }
bzw. umgekehrt:
while(array.length) { tu_was_mit( array.pop() }
Auf folgende nützliche Funktion zum endlos-Durchlaufen eines Arrays bin ich besonders stolz:
array.rotate = function (step) { /* rotiert die Array-Elemente schrittweise, © Don P ;-) */
step = (step||0) % (this.length||1);
if (step > 0) while (step--) this.unshift(this.pop());
else if (step < 0) while (step++) this.push(this.shift());
};
Statt einen Zähler i zu deklarieren, mit dem man durchläuft um ihn dann dann am Ende wieder auf 0 zu setzen, werden einfach die Array-Elemente selbst rotiert, und man greift konstant z.B. auf array[0]
zu, um das nächste Element abzuholen (nach array.rotate(1);
).
Gruß, Don P