Christoph Zurnieden: Array

Beitrag lesen

hi,

Im Programm wird anschließend die Zahl errechnet auf welches Array zugegriffen werden soll. (Z.Bsp. B=test+1 Es soll auf Test1 zugegriffen werden)

Das kannst du dir sparen, wenn du dir Arrays in einem Array ablegst.

Wenn die Variablennamen exakt so aussehen: ja. Allerdings ist es hin und wieder am einfachsten sich die Adresse eines Speicherplatzes aus Namen zusammen zu basteln anstatt aus Zahlen. Insbesondere wenn sie aus einem komplexem Formular stammen ist es mit Namen deutlich übersichtlicher (man kann die Namen natürlich auch so bescheuert wählen, das sich dieser Vorteil in's Gegenteil verkehrt, zugegeben ;-).
Generell verdammen würde ich sein Vorgehen also nicht unbedingt.
Deshalb solltest Du evt Folgendes weiter ausführen.

Das "Problem" wäre so, wie von dir gewünscht zwar auch lösbar (window["Test1"] wäre dein Array Test1) - aber die Arrays in einem Array abzulegen, dürfte der vernünftigere Weg sein.

Ach was, ich soll auch am Montag nicht so faul sein, ich mach's eben ,-)

Alle Objekt sind in einem großem Array namentlich festgehalten (nein, das ist natürlich etwas komplizierter, aber hier zuviel. Hat Christian Kruse dazu nicht mal einen Artikel darüber geschrieben?). Du kannst also jede Variable, Funktion u.ä. aus diesem Array heraus ansprechen:

  
function test1(foo){  
  if(typeof(foo) == "number"){  
    foo = foo.toString(16);  
  }  
  alert("test1 with arg:\"" + foo + "\" called");  
}  
var variable1 = new Array("bar",1,"22");  
var variable2 = 0xDEADBEEF;  
var variable3 = "Hello World!";  
  
for(var i=1;i<4;i++){  
  var tmp = "variable" + i.toString(10);  
  window["test1"](window[tmp]);  
}  
alert("tmp:"+tmp+"\ni:"+i);  

so short

Christoph Zurnieden