Christine Kuehnel: Variableninhalte verloren?

Beitrag lesen

Hallo,

Es geht darum, dass ich in einer for-Schlaufe einige Bilder in einen zweidimensionalen Array werfe,

Genau da liegt IMHO die Krux.
Deine Deklaration sieht so aus:
    Pict = new Array (MaxBilder, 3)
Das ergibt aber kein zweidimensionales Array, sondern ein eindimensionales mit zwei Elementen.

Zwei Formen der Syntax beim Definieren von Array-Objekten gibt es:
   new Array(arrayLength);
   new Array(element0, element1, ..., elementN);
mit:  
   arrayLength  (Optional) The initial length of the array.
   elementN  (Optional) A list of values for the array's elements. When this form is specified,
                   the array is initialized with  the specified values as its elements

Deine Syntax entspricht der zweiten.

Sorry, aber ich habe jetzt nicht versucht, nachzuvollziehen, was in Deinem Script daraufhin weiter unten genau passiert, was der Browser da hineininterpretiert.
Hilfreicher ist es sicher zu wissen, wie man zweidimensionale Felder anlegt
So:
   a = new Array(4)    /*    a = new Array() reicht auch
   for (i=0; i < 4; i++) {
      a[i] = new Array(4)
      for (j=0; j < 4; j++) {
         a[i][j] = "["+i+","+j+"]"
      }
   }
und zum Ueberpruefen das hier gleich hinten dran:
   for (i=0; i < 4; i++) {
      str = "Row "+i+":"
      for (j=0; j < 4; j++) {
         str += a[i][j]
      }
      document.write(str,"<p>")
   }

Das Beispiel habe ich uebrigens jetzt nicht konstruiert, sondern ebenso wie die Beschreibung der Syntax direkt bei Netscape abgeschrieben.
War einfacher :-)
JavaScript Referenz: http://developer.netscape.com/docs/manuals/communicator/jsref/index.htm

Christine