Michael R.: Arrays

Hi,

ich hab ein Array

Test = new Array();
Test[0] = ...
Test[1] = ...

und dieses schöne Array soll gemischt werden. _WO_ kann ich denn Infos finden, _wie_ ich mir eine Shuffle-Funktion zusammenbaue ?

Ideen ?

Na, dann vorauf wartet Ihr noch !

Danke.

Michael

  1. guten Abend,

    und dieses schöne Array soll gemischt werden. _WO_ kann ich denn Infos finden, _wie_ ich mir eine Shuffle-Funktion zusammenbaue ?

    ich weiß nicht recht, was du unter "gemischt" verstehst, aber möglicherweise hilft dir http://selfhtml.teamone.de/javascript/objekte/array.htm#assoziative_arrays weiter.

    Christoph S.

    1. guten Abend,

      und dieses schöne Array soll gemischt werden. _WO_ kann ich denn Infos finden, _wie_ ich mir eine Shuffle-Funktion zusammenbaue ?

      ich weiß nicht recht, was du unter "gemischt" verstehst, aber möglicherweise hilft dir http://selfhtml.teamone.de/javascript/objekte/array.htm#assoziative_arrays weiter.

      danke für den Link, aber das meinte ich nicht.

      Ich meine wie kann ich die Elementen-Reihenfolge wahllos anordnen - also praktisch wie einen Kartenstapel mischen ?
      Und wenn möglich irgendwie eine solche Funktion die bei erneuten Aufruf wieder - zufällig - eine andere Reihenfolge der Elemente vornimmt.

      mischen nichts über mischen - das hier ist die Fragen ....

      :)

      1. guten Abend,

        Ich meine wie kann ich die Elementen-Reihenfolge wahllos anordnen - also praktisch wie einen Kartenstapel mischen ?
        Und wenn möglich irgendwie eine solche Funktion die bei erneuten Aufruf wieder - zufällig - eine andere Reihenfolge der Elemente vornimmt.

        aha ... meines Wissens geht das nicht, jedenfalls zumindest nicht "geradlinig". Du könntest versuchen, dir mit ein paar regulären Ausdrücken und Suchmustern irgendetwas aus deinem Array auszulesen, was dann an irgendeine Art von Zufallsgenerator übergeben wird. Aber ein echtes "Mischen" wird das nicht. Du kannst  natürlich auch deinen Array auslesen, neu sortieren, die Ergebnisse in einen neuen Array schreiben, wieder auslesen, wieder in einen neuen Array schreiben usw.  -  da kommt am Ende irgendwas zufällig Wirkendes bei raus.

        Irgendwie ist das, was du möchtest, auch nicht ganz logisch, scheint mir. Arrays sind keine ungeordneten "Haufen" von zufälligen Informationen, sondern in der Reihenfolge ihrer Bestandteile ziemlich streng definiert.

        Wozu brauchst du so etwas eigentlich ?

        Christoph S.

        1. Hi,

          danke Christoph für deine Antwort.

          Normalerweise sind Arrays sehr streng und logisch aufgebaut und ohne diese Eigenschaft wären einige meiner Seiten etwas chaotisch vorzufinden.

          Aber dieses "Mischen" brauche ich für eine Seite auf der aus einem Array dessen Inhalt dargeboten wird und man die richtige (ursprüngliche) Reihenfolge herausfinden muss - durch Verschieben der Elemente usw.

          Und deshalb sollte das Array erst einmal durcheinander gebracht werden bevor es wieder schön in Reihenfolge kommt ...

          Danke bisher

          Michael

          1. hallo,

            Aber dieses "Mischen" brauche ich für eine Seite auf der aus einem Array dessen Inhalt dargeboten wird und man die richtige (ursprüngliche) Reihenfolge herausfinden muss - durch Verschieben der Elemente usw.
            Und deshalb sollte das Array erst einmal durcheinander gebracht werden bevor es wieder schön in Reihenfolge kommt ...

            aha, das ist immerhin ein Konzept. Jetzt weiß ich bloß nicht, was für Elemente dein Array enthält. Vielleicht sind es Dateinamen ... dann wäre meine Überlegung, wie man da rangehen kann, so: lies aus dem ersten Array mit einem regulären Ausdruck statt der Dateinamen nur bestimmte Buchstaben aus, ordne die Buchstaben über Variablen wieder den Dateinamen in anderer Reihenfolge zu und schreib diese Reihenfolge in einen neuen Array ... wiederhole das beliebig oft, bis der "Mischungsgrad" perfekt ist.

            Das mag aufwendig sein, aber man müßte das vielleicht erstmal machen, um dann nachzuschauen, wie das Verfahren "komprimiert" werden kann.

            Christoph S.

            1. Danke für den Vorschlag !

              Werd's testen

              Michael

    2. guten Abend,

      und dieses schöne Array soll gemischt werden. _WO_ kann ich denn Infos finden, _wie_ ich mir eine Shuffle-Funktion zusammenbaue ?

      ich weiß nicht recht, was du unter "gemischt" verstehst, aber möglicherweise hilft dir http://selfhtml.teamone.de/javascript/objekte/array.htm#assoziative_arrays weiter.

      Christoph S.

      Guten Abend auch,

      also ich hab schon mal so was programmiert, wo Karten gemischt werden, ich weiß nicht recht, was du unter "gemischt" verstehst, aber möglicherweise hilft dir das ja weiter. Hier ist der Link:
      http://www.tu-chemnitz.de/~luta/play/freetowers.html  Einfach den Quelltext angucken, da stehts drin.

      Gruß, Lutz

      1. Guten Abend auch,

        also ich hab schon mal so was programmiert, wo Karten gemischt werden, ich weiß nicht recht, was du unter "gemischt" verstehst, aber möglicherweise hilft dir das ja weiter. Hier ist der Link:
        http://www.tu-chemnitz.de/~luta/play/freetowers.html  Einfach den Quelltext angucken, da stehts drin.

        Danke für den Link ! Werd da mal gucken gehen...

        "Mischen" meine ich einfach wie einen Kartenstapel - rein zufällig die Elemente im Array wieder anordnen

        .,.

  2. hi,

    hab grade was parat, vielleicht hülfts.

    Gruss  Joachim

    <html>
    <head>

    <title>zufall</title>

    <script language="JavaScript">

    function zufall(a,b)
    {
     return (Math.random())-(Math.random());
    }

    Zahlen = new Array(1,2,3,4,5,6,7,8,9,10,11,12);

    function lotto()
    {
        Zahlen.sort(zufall);
        Zahlenausgabe = Zahlen.join(",");
        document.spiel.ausgabe.value="Die Zahlenreihe lautet: " + Zahlenausgabe;
    }

    </script>

    </head>
    <body bgcolor="#FFFFFF">

    Die Zahlen von 1 - 12 in zufälliger Reihenfolge!

    <form name="spiel">
     <input name="ausgabe" type="text" value="Wie lautet Deine Glückszahl?" size="53" maxlength="53">
     <input name="button" type="button" value="go" onClick="lotto()">
    </form>

    </body>
    </html>