Wie kann man ein Array mischen?
Ich hab mal wieder ein altes Stück Code ausgegraben, was vielleicht für den einen oder anderen nützlich sein könnte. Die Frage ist, wie kann man ein Array mischen? Ich verwende hier wieder Array.prototype
um das Array Objekt um die Methode shuffle() zu erweitern.
Quelltext
Array.prototype.shuffle = function() { var i = this.length; if(i < 2) return; do{ var zi = Math.floor(Math.random() * i); var t = this[zi]; this[zi] = this[--i]; this[i] = t; }while(i) } |
Beispiel
var arr = [1,2,3,4,5]; arr.shuffle(); alert( arr ); |
Code testen.
Nachtrag 29.12.2007:Nachdem JürgenB aus dem SELFHTML Forum auf diesen Thread aufmerksam gemacht hat, wurde mir klar die alte Methode ist mathematisch nicht in Ordnung. Deshalb die neue Version von Jürgen, die hoffentlich besser ist ;-)
ähnliche Artikel
- 13. Mai 2009 -- String Erweiterungen (5)
Eine der Eigenschaften von Javascript, die sie von...
- 18. November 2011 -- LED Editor (1)
LED Scroller Chareditor Dieses Skript dient zum...
- 29. April 2009 -- Online Molmassen Rechner (29)
Ein kleines Javascript aus der Welt der Chemie. Der...
Comments (2)
5895 mal gelesen.
5895 mal gelesen.
2 Kommentare
Leave a comment »
Seiten:
24. September 2007: 9:42
Hallo Struppi,
eine andere mögliche umsetzung des
reinen mischens könnte so aussehen:
Array.prototype.shuffle = (function () {
this.sort(function () {
return (0.5 – Math.random());
});
});
so long – peterS.
30. September 2007: 11:16
Das ist natürlich noch besser.
Das Neuste
Kategorien
am meisten gelesen
zuletzt kommentiert
Archiv
Wortwolke
Javascript prototype OOP Bugs Datenschutz Firefox about:config Animation String Browser Tool überwachung Drag&Drop Privatsphäre LED google Wordpress LED Scroller linux Laufschrift