Hallo,
»» for(var i = 0; i in array; i++) {
»» (bricht auch ab, sobald array[i]==false gilt)Nein, bricht nicht ab.
Stimmt, nicht wirklich wenn array[i]==false, aber wenn ein Array-Element gar nicht befüllt ist, dann schon:
var a = new Array(3); // Array mit 3 Elementen
for (var i=0; i in a; alert(i++)); // gibt nichts aus
aber:
var a = new Array(3); // Array mit 3 Elementen
a[0]='wert1'; // Erstes Element befüllen
for (var i=0; i in a; alert(i++)); // gibt nur 0 aus
und:
var a = new Array(3); // Array mit 3 Elementen
a[0]='wert1'; // 1. Element befüllen
a[2]='wert3'; // 3. Element befüllen
for (var i=0; i in a; alert(i++)); // gibt ebenfalls nur 0 aus
Beim fehlenden 2. Array-Element bricht die Schleife ab, hier dagegen nicht:
var a = new Array(3); // Array mit 3 Elementen
a[0]='wert1'; // 1. Element befüllen
a[2]='wert3'; // 3. Element befüllen
for (var i=0; i<a.length; alert(i++)); // gibt 0,1 und 2 aus
Und hier auch nicht:
var a = new Array(3); // Array mit 3 Elementen
for (var i=0; i<a.length; alert(i++)); // gibt 0,1 und 2 aus
»» oder gar – als Krönung
array.forEach(function (elem) { ... }) ;)
Klar, falls Array.forEach implementiert ist.
forEach arbeitet auch nur mit den befüllten Array-Elementen:
var a = new Array(3); // Array mit 3 Elementen
a.forEach( function(e,i,a){alert(i++)} ); // gibt nichts aus
Gruß, Don P