jürgen
Zufallszahl ->
- javascript
auf dieser Testseite hab ich für 3 Fotos eine Zufallsfunktion eingebaut.
Funktioniert grundsätzlich aber es werden Zufallszahlen im Bereich von 0-4 statt von 1-3 erzeugt. Änderung auf .length-1 oder Beginn der Arrays mit 0 statt 1 hat alles nix gebracht.
Wie regelt man das ohne wieder mit einer if-schleife arbeiten zu müssen?
Danke!
Hallo,
Wie regelt man das ohne wieder mit einer if-schleife arbeiten zu müssen?
so
var zufzahl = Math.round(Math.random()*zuffoto.length)
nicht. Round macht hier nur Probleme, nimm lieber floor und schau dir mal http://aktuell.de.selfhtml.org/artikel/javascript/zufallszahlen/ an.
Gruß, Jürgen
Round macht hier nur Probleme, nimm lieber floor und schau dir mal http://aktuell.de.selfhtml.org/artikel/javascript/zufallszahlen/ an.
Danke, hab math.floor und die Variante bei math.round mit 0,5 versucht. Ergebnis: keine Veränderung.
Egal was ich versuche, es wird jedesmal auch eine Zahl UNTER der niedrigsten oder ein Wert ÜBER der höchsten Zahl als Zufallszahl generiert.
Ich komm nicht dahinter ... Problematisch wirds nur deswegen, weil math.random nicht nur Werte zwischen 0 und 1 sonder genau 0 und 1 selbst erzeugt (glaub ich). Da ist dann mit +1, -1 oder -0,5 meiner Meinung nach nicht viel zu machen.
Ich hab auf der Testseite nun auch die erzeugt Zufallszahl neben dem Bild stehen. Da seht ihr die 0 auch immer wieder aufscheinen. Wenn ich es anders drehe scheint zwar die 0 nicht auf aber dafür die 4 (bei 3 Bildern).
Hi,
Ich hab auf der Testseite nun auch die erzeugt Zufallszahl neben dem Bild stehen. Da seht ihr die 0 auch immer wieder aufscheinen. Wenn ich es anders drehe scheint zwar die 0 nicht auf aber dafür die 4 (bei 3 Bildern).
Hier dein Code:
zuffoto = new Array()
// setzen der zufalls-fotos
zuffoto[1]="fotos/kinder/kinder-01.jpg"
zuffoto[2]="fotos/kinder/kinder-02.jpg"
zuffoto[3]="fotos/kinder/kinder-03.jpg"
var zufzahl = Math.floor(Math.random() * zuffoto.length)
Ein Array fängt aber immer mit Index 0 an. Also hat dein Array die Länge 4 (zuffoto[0],zuffoto[1],zuffoto[2] und zuffoto[3]).
Schreibe die Werte in zuffoto[0] bis zuffoto[2], dann ist die Länge 3.
mfG,
steckl
Ein Array fängt aber immer mit Index 0 an. Also hat dein Array die Länge 4 (zuffoto[0],zuffoto[1],zuffoto[2] und zuffoto[3]).
Schreibe die Werte in zuffoto[0] bis zuffoto[2], dann ist die Länge 3.
Das wars! Da ich auch "Bild x von y" ausgeben will wollte ich eben die Anzeige "Bild 0 von 5" verhindern. Aber das ist mit document.write(zufzahl+1) leichter als die Zufallsfunktion zu ändern ;-)
Danke sehr!
Hi,
Round macht hier nur Probleme, nimm lieber floor und schau dir mal http://aktuell.de.selfhtml.org/artikel/javascript/zufallszahlen/ an.
Danke, hab math.floor und die Variante bei math.round mit 0,5 versucht. Ergebnis: keine Veränderung.
Die mit Math.round taugt nichts, dass will dir der Artikel doch gerade nahe bringen ...
Egal was ich versuche, es wird jedesmal auch eine Zahl UNTER der niedrigsten oder ein Wert ÜBER der höchsten Zahl als Zufallszahl generiert.
Dann machst du wohl noch was falsch.
Problematisch wirds nur deswegen, weil math.random nicht nur Werte zwischen 0 und 1 sonder genau 0 und 1 selbst erzeugt (glaub ich).
Auch bezueglich dieser Wissensluecke koennte Lesen(!) des Artikels Abhilfe schaffen.
Ich komm nicht dahinter ... Problematisch wirds nur deswegen, weil math.random nicht nur Werte zwischen 0 und 1 sonder genau 0 und 1 selbst erzeugt (glaub ich). Da ist dann mit +1, -1 oder -0,5 meiner Meinung nach nicht viel zu machen.
Einfach die dort vorgestellte Helferfunktion, die eine Zufallszahl aus dem Intervall [min;max] zurückgibt, per Copy&paste zu uebernehmen, ist dir zu hoch ...?
MfG ChrisB