Hallo,
Als erstes verstehe ich nicht wozu das if(!w.closed) gut sein soll?
Das war schon im Code drin und ich hatte keine Lust nachzuschauen was das konkret macht und was passiert wenn man ein schon geschlossenes Fenster noch mal zumacht also habe ich es drinn gelassen.
Anstelle dieses Codes hätte ich folgendes geschrieben:
while (open_windows[0]) {
open_windows.shift().close();
}
Das kann man sicherlich machen, ist aber für einen Neuling wie Fensterputzer eher schwieriger zu verstehen und bringt effektiv bei diesem Beispiel keinen Mehrwert da es sich ja nicht um hunderttausende von Fenstern handeln wird die gleichzeitig geschlossen werden wo sich so ein Geschwindigkeitschub überhaupt bemerkbar machen, wobei ich nicht glaube dass diese shift lösung überhaupt schneller sein würde da da ja noch die objekt-löschen methode ausgeführt werden muss die auch zeit kostet.
> Warum ist die Variante mit pop() um sooo viel schneller?
> Oder ist in meinem Test ein Fehler?
Ja da ist ein Fehler drinn, denn a[0] ist 0 und while(0) ist das gleiche wie while(false) also wird die schleife kein einziges mal durchlaufen.
Jeena

--
[Jlog](http://jeenaparadies.net/webdesign/jlog/) | [Gourmetica Mentiri](http://jeenaparadies.net/gourmetica-mentiri/)