zweidimensionale Arrays
tray-park
- javascript
Hallo!
Ich bin ein absoluter dau in JavaScript und ich freue mich auf die Zeit in der wir es endlich nicht mehr in der Berufsschule behandeln.
Nichts desto trotz bleibt mir keine andere Wahl das Programm durchzuziehen.
Also, wir haben folgende Aufgabenstellung bekommen:
"Erzeugen Sie ein zweidimensionales Array(4x3) mit 12 Zahlen und zeigen Sie dieses an, addieren Sie zusätzlich die Werte der zweiten Spalte des Arrays und geben Sie das Resultat über eine alert-Box aus!
Meine bisherige Lösung sieht so aus:
<script type="text/javascript">
function Ausgabe()
{
var zahl = new Array (4);
var zsum = 0;
var zahl[0] = new Array (3);
zahl[0] [0] = 1;
zahl[0] [1] = 2;
zahl[0] [2] = 3;
var zahl[1] = new Array (3);
zahl[1] [0] = 4;
zahl[1] [1] = 5;
zahl[1] [2] = 6;
var zahl[2] = new Array (3);
zahl[2] [0] = 7;
zahl[2] [1] = 8;
zahl[2] [2] = 9;
var zahl[3] = new Array (3);
zahl[3] [0] = 10;
zahl[3] [1] = 11;
zahl[3] [2] = 12;
for (i=0 ; i<4 ; i++)
{
for (j=0 ; j < 3 ; j++)
{
document.write(+zahl [i] [j]);
}
}
for (i=0 ; i>0 ; i)
{
for(j=0 ; j<3 ; j++)
{
zsum = zsum + zahl [i] [j];
}
}
alert("Die Summe beträgt: " +zsum);
}
</script>
Über den Iex bekomme ich die Fehlermeldung, dass in Zeile 17 ein ";" erwartet wird, dass kann aber nicht alles sein.
Bitte gebt mir ein paar Tipps.
MfG Tray
Hi,
Über den Iex
schwäärer Fäähler! Es sei denn, andere Browser hast Du bereits zuvor getestet.
Der Internet Explorer ist für Primärtests *absolut* ungeeignet. Dies gilt selbst dann, wenn er der einzige Browser ist, mit dem etwas jemals verwendet werden wird. Lediglich diejenigen Teile(!), die auf proprietären Methoden des IE basieren, musst Du zwangsläufig primär im IE testen.
Ach, und kürze den IE bitte nicht "Iex" ab. Ich musste erstmal grübeln, was das wohl sein mag.
bekomme ich die Fehlermeldung, dass in Zeile 17 ein ";" erwartet wird,
Und Zeile 17 ist welche?
Cheatah
Das mit der Schleife ist ein Argument!!!!!
"i" ist die Indexvariable, die nutzen wir immer bei Schleifen, frage mich aber nicht nach dem näheren Sinn!!!
Danke für das Verständnis!
function Ausgabe()
{
var zahl = new Array (4);
var zsum = 0;
<!-- Zeile 17-->
zahl [0] = new Array (3);
zahl [0] [0] = 1;
zahl [0] [1] = 2;
zahl [0] [2] = 3;
zahl [1] = new Array (3);
zahl [1] [0] = 4;
zahl [1] [1] = 5;
zahl [1] [2] = 6;
zahl [2] = new Array (3);
zahl [2] [0] = 7;
zahl [2] [1] = 8;
zahl [2] [2] = 9;
zahl [3] = new Array (3);
zahl [3] [0] = 10;
zahl [3] [1] = 11;
zahl [3] [2] = 12;
Danke für die rasche Antwort
Nun ja, mit dem Firefox bekomm ich nun auch kein gescheites ergebnis. Die Summenfunktion klappt net und das Array wird nicht in Form einer Matrizze angezeigt.
Ich nenne den Internet Explorer immer IEx wegen ex und hopp, du verstehst...
MfG Tray
Jajaja :-)
wenigstens mal die Matrizze, jedoch ohne Summenfunktion und mit einem "undefined"
var zahl = new Array (4);
var zsum = 0;
zahl [0] = new Array (3);
zahl [0] [0] = 1;
zahl [0] [1] = 2;
zahl [0] [2] = 3;
zahl [1] = new Array (3);
zahl [1] [0] = 4;
zahl [1] [1] = 5;
zahl [1] [2] = 6;
zahl [2] = new Array (3);
zahl [2] [0] = 7;
zahl [2] [1] = 8;
zahl [2] [2] = 9;
zahl [3] = new Array (3);
zahl [3] [0] = 10;
zahl [3] [1] = 11;
zahl [3] [2] = 12;
for (i=0 ; i<3 ; i++)
{
document.write("<br>");
for (j=0 ; j < 4 ; j++)
{
document.write(" | "+zahl [i] [j] + " | ");
}
}
for (i=0 ; i>1 ; i)
{
for(j=0 ; j>1 ; j++)
{
zsum = zsum + zahl [i] [j];
}
}
alert("Die Summe beträgt: " +zsum);
}
</script>
Mahlzeit,
wenigstens mal die Matrizze, jedoch ohne Summenfunktion und mit einem "undefined"
Und spätestens jetzt wird es sinnvoll, eben gerade NICHT mit dem IE, sondern mit dem Firefox (oder einem beliebigen anderen, echten Browser) zu entwickeln: die Javascript-"Fehlerkonsole" des IE ist ein schlechter Witz. Benutze Firefox und schau nach, in welcher Zeile wo der Fehler mit dem "undefined" auftritt (und wie genau der Fehler eigentlich lautet - Glaskugeln sind auch hier im Forum extrem selten) ...
MfG,
EKKi
Mahlzeit,
Nun ja, mit dem Firefox bekomm ich nun auch kein gescheites ergebnis. Die Summenfunktion klappt net
"Klappt net" ist keine hilfreiche Problembeschreibung.
und das Array wird nicht in Form einer Matrizze angezeigt.
Natürlich nicht. Was erzeugt Deiner Meinung nach der Befehl "document.write(+zahl [i] [j]);
"? Richtig, ungefähr folgendes:
5
Und wenn Du das ganze schön in der von Dir geposteten Schleife durchführst, steht da ungefähr folgendes:
1 2 3 4 5 6 7 8 9 10 11 12
Wieso sollte irgendein Browser das als Matrix (was ist eine "Matrizze"?) darstellen?
Du solltest zwischen Javascript-Problemen (Programmablauf) und HTML-Problemen (Darstellung) trennen. Schau Dir an, was als HTML beim Browser ankommt. Überlege, was beim Browser ankommen muss, damit er den Inhalt auf die von Dir gewünschte Weise anzeigt.
MfG,
EKKi
@@tray-park:
for (i=0 ; i>0 ; i)
Was denkst du, wie oft diese Schleife ausgeführt wird?
Und was soll die Anweisung 'i' bezwecken?
Live long and prosper,
Gunnar
Jetzt funktioniert es ein bisschen!
function Ausgabe()
{
var zahl = new Array (4);
var zsum = 0;
zahl [0] = new Array (3);
zahl [0] [0] = 1;
zahl [0] [1] = 2;
zahl [0] [2] = 3;
zahl [1] = new Array (3);
zahl [1] [0] = 4;
zahl [1] [1] = 5;
zahl [1] [2] = 6;
zahl [2] = new Array (3);
zahl [2] [0] = 7;
zahl [2] [1] = 8;
zahl [2] [2] = 9;
zahl [3] = new Array (3);
zahl [3] [0] = 10;
zahl [3] [1] = 11;
zahl [3] [2] = 12;
for (i=0 ; i<3 ; i++)
{
for (j=0 ; j < 4 ; j++)
{
document.write(+zahl [i] [j] + " | ");
}
}
for (i=0 ; i>0 ; i)
{
for(j=0 ; j<4 ; j++)
{
zsum = zsum + zahl [i] [j];
}
}
alert("Die Summe beträgt: " +zsum);
}
</script>