Meinst du in etwa so?
var myArray = new Array ('null', 'eins', 'zwei', 'drei', 'vier',
'fünf', 'sechs', 'sieben', 'acht', 'neun',
'zehn', 'elf', 'zwölf', 'dreizehn',
'vierzehn', 'fünfzehn', 'sechzehn');var mix = new Array();
var max = myArray.length;function rollDice () {
var num = -1;
do {
num = parseInt(Math.random()* myArray.length);
} while((isNaN(num))||(num<0));
return num;
}function mixIt (){
for (var i=0; i<max; i++) {
num = rollDice();
myArray1 = myArray.slice(0,num);
myArray2 = myArray.slice(num);
mix[i] = myArray2.shift();
myArray = myArray2.concat(myArray1);
}
myArray = mix;
return mix;
}function writeIt () {
for (var i=0; i<30; i++) {
document.write(mixIt().join('<span style="color:red"> | </span>')+'<br>');
}
}writeIt();
Sieht umständlich aus, finde ich.
Ich würd's so machen:
~~~javascript
var myArray = new Array ('null', 'eins', 'zwei', 'drei', 'vier',
'fünf', 'sechs', 'sieben', 'acht', 'neun',
'zehn', 'elf', 'zwölf', 'dreizehn',
'vierzehn', 'fünfzehn', 'sechzehn');
mischen(myArray)
alert(myArray.join('\n'));
function mischen(array, anzahl)
{
if(!anzahl || anzahl < 0) anzahl = 1;
while(anzahl--)
{
for(var i = 0; i < array.length; i++)
{
var index = parseInt( Math.random() * array.length - 1);
var tmp = array[index];
array[index] = array[i];
array[i] = tmp;
}
}
}
einfach uhnd schnell.
Struppi.