Hans: rekursive Funktion

Beitrag lesen

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