Hallo Snucky,
hier meine Vermutung:
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);
hier erhält rueck einen Wert ...
if (in_arr(rueck,keys_used)) {
errechne_zufall(maximum); // <-----
}
else {
keys_used.push(rueck);
return rueck;
}
}
... der im Rekursionsfall nicht zurückgegeben wird.
Wenn du in der Zeile mit // <----- einfach
return errechne_zufall(maximum);
schreibst, sollte es gehen.
Allerdings schließe ich mich den anderen an: ich würde hier auch auf Rekursionen verzichten.
Gruß, Jürgen