Flexter: Array aus Funktion heraus bestücken...

Hallo Leute mal wieder ein Problem. habe versucht, aus einer Funktion ein Array heraus zu befüllen.

Dazu habe ich erstmal die Variable globalisiert mit

var meinArray1;
var meinArray2;

Die Funktion selbst wird dann bedingungsgesteuert ausgeführt:

function SetFillArray()
 {
  FillArray(1);
 }

function FillArray(ByNumber)
 {
  if(ByNumber == 1)
   {
    meinArray1 = new Array("Wert1",Wert2",usw...)
    meinArray2 = new Array("Yadda1",Yadda2",usw...)
   }

if(ByNumber == 2)
   {
    meinArray1 = new Array("Wert4",Wert5",usw...)
    meinArray2 = new Array("Yadda4",Yadda5",usw...)
   }
 }

Soweit so gut... logisch gesehen (und dabei an VB denk, was das auch so umsetzen würde), gehe ich mal von aus, daß jetzt die Funktion FillArray eben die Variablen meiArray1 und 2 gemäß der Fallabrage bestückt hätte und somit von anderen Funktionen aus auf die entsprechenden Werte darin zugreifen werden kann...

Denkste... Leider spuckt mir eine Alert-Debug-Abfrage aus, daß das Array leer ist, sowohl das Eine als auch das Andere... mit return kann ich ned arbeiten, da nur ein Wert rückgegeben wird...
Der Geltungsbereich ist doch aber global...

Auch der Versuch, die Werte einzeln via Index, Also MeinArray1[0] = "Wert1" usw... in der Befüllfunktion führen zum selben Ergebnis...

Hat jemand 'ne Idee, wie man das lösen kann?

  1. Hallo Flexter,

    Hat jemand 'ne Idee, wie man das lösen kann?

    Ich gehe davon aus, dass Du die Anführungszeichen korrekt gesetzt hast im Script und hier nur vergessen hast. Somit läuft folgendes Script problemlos:

      
    <script type="text/javascript">  
      
    var meinArray1;  
    var meinArray2;  
      
    function SetFillArray()  
     {  
      FillArray(1);  
     }  
      
    function FillArray(ByNumber)  
     {  
      if(ByNumber == 1)  
       {  
        meinArray1 = new Array("Wert1","Wert2");  
        meinArray2 = new Array("Yadda1","Yadda2");  
       }  
      
      if(ByNumber == 2)  
       {  
        meinArray1 = new Array("Wert4","Wert5");  
        meinArray2 = new Array("Yadda4","Yadda5");  
       }  
     }  
      
     SetFillArray();  
     window.alert(meinArray1.join(", "));  
     window.alert(meinArray2.join(", "));  
      
    </script>
    

    Mit freundlichem Gruß
    Micha

    --
    LeagueEditor JavaScript kostenlose Ligaverwaltung || richtig Messen will gelernt sein