Hi Snucky !
var keys_used=new Array();
//0 ist immer minimum für den Rückgabewert
function errechne_zufall(maximum) {
var ausschlag=Math.random();
var rueck=Math.round(maximum*ausschlag);
if (in_arr(rueck,keys_used)) {
errechne_zufall(maximum);
}
else {
keys_used.push(rueck);
return rueck;
}
}
function in_arr(needle,array) {
var found=false;
suche:for (var i=0; i<array.length; i++)
if (array[i]==needle) {
found=true;
break suche;
}
return found;
}
Also, so vom Gefühl her, würde ich sagen:
Beim ersten Aufruf ist das keys_used-Array leer. Die in_arr-Funktion liefert demzufolge "false" zurueck. Also wird die Zufallszahl in das Array aufgenommen und die errechne_zufall-Funktion verlassen.
Gruß
Hans