Don P: Bei Schleifendurchlauf jedesmal neue Variable verwenden

Beitrag lesen

Hallo,

Wieso? Inwiefern?

Hmm... gute Frage. Habe mal sowas gelesen, aber damit ist anscheinend nicht wirklich die Abbruchbedingung gemeint, sondern die Verwendung der for...in Schleife in der Form for(i in Inhalt){alert(Inhalt[i])};, um beim Beispiel zu bleiben.

Es heißt in der Doku zu prototype 1.6, Kapitel 4:
"Many JavaScript authors have been misled into using the for…in JavaScript construct to loop over array elements. This kind of code just won’t work with Prototype."

Das liegt daran, dass so eine for..in Schleife auch alle Eigenschaften des Arrays durchläuft, z.B. auch die über Array.prototype dazugefügten.

Zum Beispiel wird mit

  
var i, a=['a','b','c'];  
a.neu='d'; // Neue Eigenschaft des Arrays  
for(i in a){alert(a[i])}  

auch 'd' ausgegeben, obwohl das in keinem Array-Element vorkommt.

Als Abbruchbedingung ist "i in Inhalt" aber anscheinend wirklich ok, solange man sich bewusst ist, dass die Schleife halt beim ersten undefinierten Array-Element abbricht, also nicht zwangsläufig alle Elemente durchlaufen werden. Das mag nicht immer erwünscht sein.

Aber das muss ich dir, @molily, ja sicher nicht alles erklären, gelle...

Gruß, Don P