NCMasta: Mehrdimensionales Array mit For-Schleife wiedergeben

Beitrag lesen

Morgen! =)

Ich habe ein Mehrdimensionales Array, das ich gerne mit einer For-Schleife wiedergeben möchte und in der For-Schleife ist wieder eine For-Schleife um die einzelnen Variablen pro "Dimension" wiederzugeben, jedoch bleibt alles weiss ....

Die Variablen:

var scma = new Array();  
scma[0] = new Array("Marx", "3195", "14.09.79", 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);  
scma[1] = new Array("Juncker", "4989", "14.09.79", 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);  
scma[2] = new Array("Schmitt", "7061", "14.09.79", 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);  
..... usw.

var opt_sichtbar = new Array("Yes", "Yes", "Yes", "No", "Yes", "No", "No", "No", "No", "No", "No", "No", "No", "No", "No");

Hier das JS-Script:

function Plan() {  
	  
	for ( var u = 0; u < scma.lenght; u++ ) {  
		if ( opt_sichtbar[u] == "Yes" ) {  
			document.write('<table border="0" style="border-collapse:collapse" class="body-dienstplan">');  
			document.write('<tr><td class="body-geb b"><input class="input-geb" size="8" value="' + scma[u][2] + '"></td><td class="body-tage">&nbsp;</td><td class="body-tage">01</td><td class="body-tage">02</td><td class="body-tage">03</td><td class="body-tage">04</td><td class="body-tage">05</td><td class="body-tage">06</td><td class="body-tage">07</td><td class="body-tage">08</td><td class="body-tage">09</td><td class="body-tage">10</td><td class="body-tage">11</td><td class="body-tage">12</td><td class="body-tage">13</td><td class="body-tage">14</td><td class="body-tage">15</td><td class="body-tage">16</td><td class="body-tage">17</td><td class="body-tage">18</td><td class="body-tage">19</td><td class="body-tage">20</td><td class="body-tage">21</td><td class="body-tage">22</td><td class="body-tage">23</td><td class="body-tage">24</td><td class="body-tage">25</td><td class="body-tage">26</td><td class="body-tage">27</td><td class="body-tage">28</td><td class="body-tage">29</td><td class="body-tage">30</td><td class="body-tage">31</td><td class="body-std b">Stunden</td></tr>');  
			document.write('<tr><td class="body-name"><input class="input-name" size="15" value="' + scma[u][0] + '"></td><td class="body-FS b">F</td>');  
			var ausgabe = "";  
			var tag = 0;  
			for ( var i = 3; i < scma[u].length; i = i + 2 ) {  
				ausgabe = scma[u][i] + "\n";  
				if ( ausgabe == 0 ) { ausgabe = "&nbsp;"; }  
				tag++;  
				var datum = new Date(jahr, monat, tag);  
				var wochentag = datum.getDay();  
				if      ( tag == 1  && monat == 0  ) { feiertag = "true" }  
				else if ( tag == 29 && monat == 1  && jahr != 2016 ) { feiertag = "zu" }  
				else if ( tag == 29 && monat == 1  && jahr != 2020 ) { feiertag = "zu" }  
				else if ( tag == 29 && monat == 1  && jahr != 2024 ) { feiertag = "zu" }  
				else if ( tag == 30 && monat == 1  ) { feiertag = "zu" }  
				else if ( tag == 31 && monat == 1  ) { feiertag = "zu" }  
				else if ( tag == 31 && monat == 3  ) { feiertag = "zu" }  
				else if ( tag == 1  && monat == 4  ) { feiertag = "true" }  
				else if ( tag == 31 && monat == 5  ) { feiertag = "zu" }  
				else if ( tag == 31 && monat == 8  ) { feiertag = "zu" }  
				else if ( tag == 3  && monat == 9  ) { feiertag = "true" }  
				else if ( tag == 1  && monat == 10 ) { feiertag = "true" }  
				else if ( tag == 31 && monat == 10 ) { feiertag = "zu" }  
				else if ( tag == 25 && monat == 11 ) { feiertag = "zu" }  
				else if ( tag == 26 && monat == 11 ) { feiertag = "true" }  
				else    { feiertag = "false" }  
				//BeweglicheFeiertage();  
				if ( wochentag == 0 && feiertag == "false" ) { var bgcolor = color_sonntag;	}  
				else if ( wochentag == 0 && feiertag == "true" ) { var bgcolor = color_feiertag; }  
				else if ( wochentag != 0 && feiertag == "true" ) { var bgcolor = color_feiertag; }  
				else if ( wochentag == 0 && feiertag == "zu" ) { var bgcolor = color_zu; }  
				else if ( wochentag != 0 && feiertag == "zu" ) { var bgcolor = color_zu; }  
				else { var bgcolor = color_neutral; }  
				document.write('<td style="background-color: ' + bgcolor + ';" class="body-input b"><input style="background-color: ' + bgcolor + ';" class="input-std" onclick="this.select()" ondblclick="document.this.style.backgroundColor=blue" size="1" value="' + ausgabe + '"></td>');  
			}  
			document.write('<td class="body-UK"></td></tr><tr>');  
			document.write('<td class="body-pers"><u>Pers.-Nr:</u>&nbsp;&nbsp;<input class="input-pers" size="5" value="' + scma[u][1] + '"></td><td class="body-FS b">S</td>');  
			var ausgabe = "";  
			var tag = 0;  
			for ( var i = 4; i < scma[u].length; i = i + 2 ) {  
				ausgabe = scma[u][i] + "\n";  
				if ( ausgabe == 0 ) { ausgabe = "&nbsp;"; }  
				tag++;  
				var datum = new Date(jahr, monat, tag);  
				var wochentag = datum.getDay();  
				if      ( tag == 1  && monat == 0  ) { feiertag = "true" }  
				else if ( tag == 29 && monat == 1  && jahr != 2016 ) { feiertag = "zu" }  
				else if ( tag == 29 && monat == 1  && jahr != 2020 ) { feiertag = "zu" }  
				else if ( tag == 29 && monat == 1  && jahr != 2024 ) { feiertag = "zu" }  
				else if ( tag == 30 && monat == 1  ) { feiertag = "zu" }  
				else if ( tag == 31 && monat == 1  ) { feiertag = "zu" }  
				else if ( tag == 31 && monat == 3  ) { feiertag = "zu" }  
				else if ( tag == 1  && monat == 4  ) { feiertag = "true" }  
				else if ( tag == 31 && monat == 5  ) { feiertag = "zu" }  
				else if ( tag == 31 && monat == 8  ) { feiertag = "zu" }  
				else if ( tag == 3  && monat == 9  ) { feiertag = "true" }  
				else if ( tag == 1  && monat == 10 ) { feiertag = "true" }  
				else if ( tag == 31 && monat == 10 ) { feiertag = "zu" }  
				else if ( tag == 25 && monat == 11 ) { feiertag = "zu" }  
				else if ( tag == 26 && monat == 11 ) { feiertag = "true" }  
				else { feiertag = "false" }  
				//BeweglicheFeiertage();  
				if ( wochentag == 0 && feiertag == "false" ) { var bgcolor = color_sonntag;	}  
				else if ( wochentag == 0 && feiertag == "true" ) { var bgcolor = color_feiertag; }  
				else if ( wochentag != 0 && feiertag == "true" ) { var bgcolor = color_feiertag; }  
				else if ( wochentag == 0 && feiertag == "zu" ) { var bgcolor = color_zu; }  
				else if ( wochentag != 0 && feiertag == "zu" ) { var bgcolor = color_zu; }  
				else { var bgcolor = color_neutral; }  
				document.write('<td style="background-color: ' + bgcolor + ';" class="body-input b"><input style="background-color: ' + bgcolor + ';" class="input-std" onclick="this.select()" ondblclick="bgc()" size="1" value="' + ausgabe + '"></td>');  
			}  
			var sum = 0;  
			for ( i = 4; i < scma[u].length; i++ ) {  
			sum += scma[u][i];  
		}  
			document.write('<td class="body-anzahl">' + sum + '</td></tr></table>');  
		}  
		else {  
			document.write('<div class="leer">&nbsp;</div>');  
		}  
	}  
}

Ich hab einen Fehler eingebaut, ich weiss nur nicht wo ^^ oder geht das aufrufen nicht mit variable[u][i] nicht in den Schleifen? Oder ist For vllt die falsche Schleife für diesen Job? Ein paar Variablen sind nicht ersichtlich, an denen liegt es aber auch nicht, das Script lief vorher für jede Dimension einzeln, insgesamt sind es 15 * 65 Felder in dem Array, d.h. ich hatte 15 mal die gleiche Funktion notieren müssen, dann habe ich es geändert von 15 Arrays zu einem Array und dann lief nichts mehr =( Hoffe jemand weiss was ich falsch gemacht habe