Betina: List generator

Hallo miteinander,
bei nachfolgendem Script wird die Liste abgearbeitet
nach dem Zufallsprinzip,kann mir jemand sagen
wie man es macht das diese "Step by Step" also
a) Schritweise 0,1,2 usw. angezeigt wird?
b) dann wieder bei 0 beginnt 0 1 2 0 1 2 0 usw.
<script language="Javascript">
<!--
function gencode() {
var list = new Array(3)
list[0] = "abc"

list[1] = "cde"  

list[2] = "fgh"  

var now = new Date()
                var sec = now.getSeconds()
return(list[sec % 3])

}
//-->
</script>
Vielen Dank !

  1. var sec = now.getSeconds()

    An dieser Stelle erzeugt das Skript eine "Zufallszahl" - keine besonders gute übrigens, nämlich die Sekundenzahl der aktuellen Uhrzeit.

    »»  return(list[sec % 3])

    Und hier bildet es diese Zahl auf einen Wert ab, der als Rest der der Division durch 3 herauskommt - also 0, 1 oder 2.

    kann mir jemand sagen wie man es macht das diese "Step by Step" also a) Schritweise 0,1,2 usw. angezeigt wird?

    Dazu brauchst Du ein Gedächtnis, also eine Variable außerhalb der Funktion. Und bei jedem Funktionsaufruf erhöhst Du diese Variable um 1, statt wie bisher die Uhrzeit dort abzuspeichern.

    1. Hallo Michael!

      Ich wuerde sagen, Deine Aussagen sind voellig korrekt, bringen die Fragestellerin in diesem Fall jedoch nicht weiter. (Du wolltest zum Selberloesen anregen, schon klar.) Daher schiebe ich mal noch den Code nach:

      <script language="Javascript"><!--
          var listindex = 2;

      function gencode() {
              var list = new Array(3)
              list[0] = "abc"
              list[1] = "cde"
              list[2] = "fgh"

      listindex = (listindex + 1) % 3;     // bewusst auf Optimierung verzichtet
              return list[listindex];
          }
      //--></script>

      Calocybe