Hallo Bernhard,
In der nächst Schleife möcht ich sie fühlen:
*/
for(var i=0; i<=punktZahl; i++){
Da Du bei 0 anfängst zu zählen, müsste es wohl i<punktzahl heissen.
if(i==(punkt-1)){
seiten[(seiteJ-1)][i] = new Array(element);
}
}
Auch hier erzeugst Du wieder ein neues, leeres Array, anstatt das vorhandene z.B. so
seiten[(seiteJ-1)][i] = "Wert";
mit Werten zu füllen.
Ausserdem hast Du hier eine unnötige Schleife über alle Punkte, obwohl Du nur ein einziges Arrayelement füllst.
Nehmen wir wieder an, Du hast 4 Punkte auf der Seite und punkt ist gleich 2. Dann passiert folgendes:
1. Durchlauf, i=0 -> (punkt-1) ist ungleich i, nichts passiert
2. Durchlauf, i=1 -> (punkt-1) ist gleich i, ein neues Array wird erzeugt
3. Durchlauf, i=2 -> (punkt-1) ist ungleich i, nichts passiert
4. Durchlauf, i=3 -> (punkt-1) ist ungleich i, nichts passiert
Da Du aber schon vorher weisst, auf welches Arrayelement Du zugreifen willst, kannst Du Dir die Schleife sparen und gleich schreiben:
seiten[seiteJ-1][punkt-1] = "Wert";
Die runden Klammern um seiteJ-1 sind hier übrigens nicht notwendig.
In dem von User grade ausgewählten Punkt möchte ich den Elementnummer "element" speichern, leider wird er bei jedem neu gewählten Punkt überschrieben.
Was hältst Du von diese Methode?
Es wäre vielleicht am besten, wenn Du das Ganze mal hochladen und hier verlinken würdest, damit man es sich mal ansehen kann.
Noch etwas, als Kontrollausgabe gebe ich die Variable "seiten" in einem alert Fenster aus und lasse die eine for Schleifen ablaufen:
var aus="";
for(var i=0; i<=seiten.length; i++){
Auch hier muss es wieder i<seiten.length heissen.
aus += seiten[0][i]+", "+seiten[i]+"\n";
}
alert(seiten+"\n\n"+aus);
}
Wenn Du alles ausgeben willst, brauchst Du zwei Schleifen:
for (i=0; i<seiten.length; i++) {
// seiten[i] ist wieder ein Array:
for (j=0; j<seiten[i].length; j++) {
aus += seiten[i][j] + " ";
// Das Leerzeichen dient zum Trennen der Werte
}
// Eine ausgabe pro Seite:
alert(aus);
}
Grüße
Andreas