Javascript ist Toll!

FAQ > Javascript

31. August 2007 - 10:46

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

javascript
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

javascript
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

Comments (2)
7055 mal gelesen.

2 Comments

Einen Kommentar hinterlassen »

Kommentare

1. von peter seliger (peterS.)
Montag 24.September 2007: 09: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.

2. von Struppi
Sonntag 30.September 2007: 11:16

Das ist natürlich noch besser.

Einen Kommentar hinterlassen

Name (erforderlich)
Mail (wird nicht angezeigt) (erforderlich)
Website

Folgende HTML Tags sind erlaubt: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>



Powered by WordPress Stop Spam Harvesters, Join Project Honey Pot kostenloser Counter Browser-Statistiken
rats-wonderful
rats-wonderful
rats-wonderful
rats-wonderful