Randomize Array Funktion

Eine einfach Funktion, um ein Array zu mischen. Hab zwar einiges bei Google gefunden, wollte aber eine eigene Funktion haben (AS2):

Array.prototype.randomize = function() {
var tmp = this;
this = new Array();
while(tmp.length > 0) {
var pos = Math.floor(Math.random()*tmp.length);
this.push(tmp[pos]);
tmp.splice(pos,1);
}
return this;
}

Das Array wird kopiert und geleert, dann wird aus dem temporären Array ein Wert an einer zufälligen Stelle in das neue leere Array geschrieben und aus dem temporären gelöscht. Das macht man solange Werte im temporären Array sind.
Zu beachten:
– man kann nicht mit splice den Wert holen und gleichzeitig ins neue Array einfügen, da werden die Werte komisch gecastet und ein multidimensionales Array geht dabei kaputt
– die Funktion muss vor dem Funktionsaufruf stehen, ansonsten funktioniert es nicht

Kommentare sind geschlossen.