[latex]Mae govannen![/latex]
ich hätte angenommen, Kai kümmert sich auch weiter zu Problemen mit seinem Lösungsvorschlag.
Ein Grund, weshalb sämtliche Foren und Boards niemals so bedienfreundlich sein werden wie Usenet: Dort kann ich im Client bestimmte Beiträge wieder auf ungelesen setzen, oder auf halten, solange ich will und vieles mehr. Hier hingegen vergesse ich einiges, weil man die "gelesen" Markierung nicht wieder rückgängig machen kann :(
[Erklärung]
Die Schleife könnte ganz einfach so aussehen:
for (var i = 1; i < blocks_an_aus.arguments.length; i++)
.
Es ist zwar im konkreten Fall eher theoretisch, da hier der Performance-Unterschied zu vernachlässigen ist, aber um Insomnia den Unterschied der Schleifen-Schreibweise zu erklären:
(ich schreibe hier als Variable für das Array einfach generisch 'array' und nicht 'arguments', da das folgende für alle Array gilt)
for (var i = 1; i < array.length; i++)
Hier wird in jedem Durchlauf array.length und dessen Größen-Verhältnis zu i neu ermittelt.
for (var i = 1, l = array.length; i < l; i++)
Hier werden die beiden Variablen i und l initialisiert und l wird der Wert von array.length zugewiesen. Im Durchlauf wird nur noch der Wert von l verwendet und mit i verglichen. Dies ist vielleicht interessant zu wissen, wenn man mit Schleifen arbeiten will, die mehrere tausend Durchläufe benötigen.
Dies funktioniert allerdings nur bei Schleifen, in denen die Anzahl der Array-Elemente nicht verändert wird.
Die von Insomnia verwendete Schreibweise war im konkreten Fall also ebenfalls korrekt, nur das arguments.length-1 muß zu arguments.length geändert werden, wie du korrekt erklärt hast.
Cü,
Kai
Ash nazg durbatulûk, ash nazg gimbatul,ash nazg thrakatulûk, agh burzum-ishi krimpatul
selfcode sh:( fo:| ch:? rl:( br:< n4:# ie:{ mo:| va:) js:) de:> zu:) fl:( ss:| ls:?