しばらくの間、さまざまな方法を試してきましたが、何をしてもうまくいかないところまで来ました。
これが私がやろうとしたことです。まず、乱数を作成して配列に追加します。
for(.......){
random[i] = Math.floor(Math.random() * (word.length));
次に、別の乱数が配列に追加されます。
randomkey[i] = Math.floor(Math.random() * (word.length));
次に、この関数を作成します。
var accept=true;
// word is a text (length:22)
function acceptRandom(random,word){
stop:
for(var i=0;i<randomkey.length+1; i++){
if(word[i] != word[random])
accept = true;
else {
accept = false;
break stop;
}
}
if(accept == false){
newrandom = Math.floor(Math.random() * (word.length));
// Random number exists so we call the function again with a new value
acceptRandom(newrandom,word);
} else
return random;
}
問題は、乱数が既に存在する場合、新しい値を返さないことです。