Shina: Array an eine Funktion übergeben

Hilfe!!

fieberhaft arbeite ich an der Entwicklung meines ersten JavaScript Programmes und bin auf eine scheinbar unlösbare Aufgabe gestoßen:

Ich möchte eine unbekannte Anzahl an Variablen an eine Funktion (welche zuständig ist, meine Berechnung grafisch darzustellen und sich in einer externen .js Datei befindet) übergeben und dort damit weiterarbeiten. Diese Variablen sind in einem 2-dimensionalen Array gespeichert, welches ich gerne als ganzes übergeben würde.

Was ich schon herausgefunden habe, ist wie ich mit den x übergebenen Variablen weiterarbeite...

Geht das irgendwie einfach oder auch kompliziert - jedes Lösung ist mir recht!

Anmerkung: bei der Variable handelt es sich um einen Datums-wert (Date).

Danke,
Shine

  1. Hallo Shina,

    die übergabe ist in der Form, die du dir vorstellst, ist nicht so einfach. Das beste, was du unter JavaScript machen kannst, ist:

    Wandele den Arrays durch JOIN()-Befehl in eine Zeichenkette.
    SO :
    Wenn deine Array TEST heißt:

    ZEICHENKETTE = TEST.join("_")

    die Zeichenkette sieht dann so aus: A_B_C_D_usw.

    Jetzt kannst du diese Zeichenkette ohne weiteres übergeben.
    Nach dem Übergabe benutzt du den Befehl Split(), um wieder deinen Array aufzubauen.

    TEST = TEST.split("_");

    MfG.
    Sohail

    1. Hallo ixotoxin, Hallo Sohail und Hallo Allgemeinheit!

      Danke für eure Lösungsvorschläge! Die Möglichkeit von 'join' habe ich noch nicht gekannt und wurde auch prompt eingebaut.

      Allerdings war das große Problem die Deklaration meines Arrays, nämlich 'Date'. Bei dem hilft das beste 'join' und 'split' nicht, denn hinterher hat er zwar eine Variable die ungefähr so 'Wed Aug 23 00:00:00 UTC+0200 2000' aussieht, aber die alles andere als ein Datum ist.

      Nun habe ich das Problem folgendermaßen gelöst:
      Man errechne sich mittels einer For-Schleife ein Array in das die Millisekunden von den Dati gespeichert werden, "joined" es, übergibt den String, "splittet" ihn, und dann muß man ihn lediglich wieder in das Datums-format zurückkonvertiern.
      Ist zwar ganz schön mühsam und auch sich nicht sehr sauber programmiert, aber es funktioniert!

      lg an alle
      Shina

      1. Hallo Shina,

        Ich freue mich, dass ich dir helfen konnte.
        Übrigens, du hast sehr schöne Name.

        MfG.
        Sohail

  2. Hilfe!!

    fieberhaft arbeite ich an der Entwicklung meines ersten JavaScript Programmes und bin auf eine scheinbar unlösbare Aufgabe gestoßen:

    Ich möchte eine unbekannte Anzahl an Variablen an eine Funktion (welche zuständig ist, meine Berechnung grafisch darzustellen und sich in einer externen .js Datei befindet) übergeben und dort damit weiterarbeiten. Diese Variablen sind in einem 2-dimensionalen Array gespeichert, welches ich gerne als ganzes übergeben würde.

    Was ich schon herausgefunden habe, ist wie ich mit den x übergebenen Variablen weiterarbeite...

    Geht das irgendwie einfach oder auch kompliziert - jedes Lösung ist mir recht!

    Anmerkung: bei der Variable handelt es sich um einen Datums-wert (Date).

    Danke,
    Shine

    hm also ich hoffe ich hab das richtig verstanden wie du das meinst...
    kopier dir einfach mal dieses script in den editor, führ es aus und du wirst dirs schon zusammenreinen können wies funzt:

    ---------------------------------------------------------

    //beim 2. absatz beginnen zu lesen
    function gurke(traube) //die funktionen sollten immer ganz oben stehen damit sie auch verfuegbar sind wenn sie gebraucht werden
    {
    apfel = traube.split(","); //aus der zeichenkette wieder einen array namens apfel machen
    for(i = 0; i < apfel.length; i++) //in den einzelnen array-elementen wieder -1 in - und -2 in , umwandeln
    {
    for(j = 0; j < apfel[i].length; j++)
    {
    if(apfel[i].substring(j,j + 2) == "-2") apfel[i] = apfel[i].substring(0,j) + "," + apfel[i].substring(j + 2,apfel[i].length);
    if(apfel[i].substring(j,j + 2) == "-1") apfel[i] = apfel[i].substring(0,j) + "-" + apfel[i].substring(j + 2,apfel[i].length);
    }
    }
    for(i = 0; i < apfel.length; i++) alert(apfel[i]); //jedes einzelne array-element mit alert ausgeben
    }
    //ende

    //anfang
    banane = new Array("beliebig viele elemente...","bla, bla, bla","eins - zwei - drei","so viele man eben will..."); //den array definieren
    for(i = 0; i < banane.length; i++) //hier wird in jedem array-element - in -1 und , in -2 umgewandelt da spaeter wenn der array zu einer zeichenkette gemacht wird das , als trennzeichen verwendet wird
    {
    for(j = 0; j < banane[i].length; j++)
    {
    if(banane[i].charAt(j) == "-") banane[i] = banane[i].substring(0,j) + "-1" + banane[i].substring(j + 1,banane[i].length);
    if(banane[i].charAt(j) == ",") banane[i] = banane[i].substring(0,j) + "-2" + banane[i].substring(j + 1,banane[i].length);
    }
    }
    gurke(banane.join(",")); //aus dem array eine zeichenkette machen und diese der funktion uebergeben
    //ganz oben weiterlesen

    ---------------------------------------------------------

    der 1. absatz ist vollkommen unabhängig und arbeitet nur mit der traube :)
    um sich den ganzen mist zu sparen kann man natürlich auch aus der funktion raus auf die banane zugreifen - auch wenn die funktion in einer extra datei steht, aber ich weiss ja nicht wie bei dir die situation ist
    so kann man die funktion auch auch beliebig viele bananen anwenden wenn du verstehst was ich meine...
    cya, iso