Frank Hess: Variablen-Bug in den neuen Browsergenerationen??

vielleicht arbeitet der eine oder andere mit folgender Methode:

Wenn man per Javascript eine Variable als Array definiert, ohne die einzelnen Datenfelder durchzunummerieren..

beispiel=new Array(
"wert1",
"wert2",
"...",
"wert50");

..und dann sämtliche werte auflistet..

i=0
while(beispiel!="undefined"){
document.writeln(beispiel[i])
i++}

...kam man bislang grundsätzlich zum Erfolg des Auflistens bis zum letzten Datenfeld des Arrays.
Diese "unnummerierte" Variante hat vor allem dann den Vorteil, wenn man in langen Arrays häufig Änderungen bzw. Ergänzungen an den unterschiedlichsten Positionen vornehmen möchte. Ein erneutes Durchnummerieren des Arrays fällt somit flach.

Die neuen Browserversionen von Netscape (z.B. 4.08) und Internet Explorer (ab 4.5) kommen allerdings nicht mehr mit der abfrage der undefinierten Variable klar.

Somit mußte ich mit einer weiteren Variable arbeiten, in der ich die Länge des Arrays ablege. Das Schleifenkonstrukt ergibt sich somit per

for (i=0;i<=anzahl;i++){ .... }

Problem gelöst, aber ich frage mich, warum die alte Variante nicht mehr klappt (und das obwohl die Prüfung per alert(beispiel[i] ergab, dass der Inhalt ab dem ersten Wert ausserhalb des Arrays tatsächlich "undefined" ist)?
Oder programmiere ich in einem schlechten Stil??

Gruss
Franky

  1. hab mich (nur hier im forum) im beispiel der while abfrage vertan...

    selbstverstaendlich heisst das:

    while(beispiel[i]!="undefined"){...}

  2. Hallo Frank,

    da ein Array immer etwas mit definierter Groesse ist, macht es grundsaetzlich mehr Sinn, Array-Inhalte in for-Schleifen abzuklappern als in while-Schleifen. Damit Du flexibel bleibst kannst Du ja notieren:
    (for i=0; i<Arrayname.length; i++)

    viele Gruesse
      Stefan Muenz

    1. Hey Stefan!

      vielen Dank für Deine Hilfe,
      und an dieser Stelle auch mal vielen Dank, für Deine
      Website, die ich immer wieder gerne (gezwungenermassen) aufsuche...

      Weiter so!
      Franky

      Hallo Frank,

      da ein Array immer etwas mit definierter Groesse ist, macht es grundsaetzlich mehr Sinn, Array-Inhalte in for-Schleifen abzuklappern als in while-Schleifen. Damit Du flexibel bleibst kannst Du ja notieren:
      (for i=0; i<Arrayname.length; i++)

      viele Gruesse
        Stefan Muenz