undefined
jonny_w
- javascript
hallo, ich fuelle ein 2 dimensinales array testweise in einer schleife mit einem wort und gebe anschliessend wieder in einer schleife aus, aber irgendetwas schlaegt hier quer, hier erstmal der code:
function test(){
xml = new Array();
var s = 3;
for(var i = 0; i < s; i++){
for(var v = 0; v < 3; v++){
xml[i] = new Array();
xml[i][v] = "meep";
}
}
for(var q = 0; q < xml.length; q++){
for(var p = 0; p < xml[q].length; p++){
alert(q+" "+p+" "+xml[q][p]);
}
}
}
0 0 undefined
0 1 undefined
0 2 meep
1 0 undefined
1 1 undefined
1 2 meep
2 0 undefined
2 1 undefined
2 2 meep
woran kann das liegen ?
Hi
for(var i = 0; i < s; i++){
for(var v = 0; v < 3; v++){
xml[i] = new Array();
xml[i][v] = "meep";
Also:
i=0;
v=0;
xml[0] wird auf ein leeres Array gesetzt, xml[0][0] dann auf meep
i=0;
v=1;
xml[0] wird auf ein leeres Array gesetzt, xml[0][1] dann auf meep
...
Dein new Array() steht fälschlicherweise in der Schleife statt davor, nehme ich zumindest an.
MfG
Rouven
naja es steht ja in der ersten schleife und da kommt ja schluss endlich folgendes raus:
xml[0] = new Array();
xml[1] = new Array();
xml[2] = new Array();
und damit hab ich ja jeweils die zweite dimension fuer das jeweilie array erstellt, oder ?
Hi,
darin liegt dein Irrglaube, das habe ich versucht vorhin darzustellen. Du erstellst jedes Array (z.B. xml[0]) drei Mal. Was heißt das? Wenn du es zum dritten Mal erstellst, dann gehen die ersten zwei verloren, d.h. es überlebt nur der Eintrag aus dem letzten Schleifendurchlauf.
Deswegen:
Schleife 1..3
1) Array erstellen
2) Schleife 1..x
Wert setzen
MfG
Rouven
stimmt, ich seh jetzt erst, das steckt ja versehendlich auch mit in der zweiten forschleife drin, das ist natuerlich falsch, er muss mit in die erste, ich war auch die ganze zeit der annahme, es steht in der ersten, naja manchmal sieht man den wald vor lauten bauemen nicht, besten dank nochmal