私は現在、いくつかの実験を行うためにjavascriptを使用しています.JSは初めてではありませんが、SOの善良な人々が助けてくれることを願っています.
基本的に、応答の量/長さを返すWebサービスにjsonpリクエストを作成しています(オブジェクトをカウントするだけです)。次に、これらのオブジェクトのうち 9 つをランダムに選択して配列に配置しますが、ここに問題があります。これらの 9 つのオブジェクトが繰り返されないようにしたいと思います。これを達成するために、次のコードを使用しています。
function randomizer() {
return Math.ceil(Math.random()*badges.length);
}
function dupsVerify(array, number) {
array.forEach(function () {
if(array === number) {
return true;
}
});
return false;
}
// Randomly choose 9 array indexes
var randomBadge = function () {
var selectedIndexes = new Array();
while(selectedIndexes.length < 9) {
var found = false;
var randomNumber = randomizer();
if(!dupsVerify(selectedIndexes, randomNumber)) {
selectedIndexes.push(randomNumber);
} else {
newRandom = randomizer();
dupsVerify(selectedIndexes, newRandom);
}
}
return selectedIndexes;
}
この検証を行うためにいくつかの異なる方法を試しましたが、次のことを行うことができないかどうかを考えていました。
乱数を生成し、配列を調べて、配列に既に存在するかどうかを確認します。存在する場合は、別の乱数を生成し (乱数呼び出し)、再度検証します。配列に存在しない場合は、「最終」配列にプッシュします。
どうすればこれを達成できますか?コールバックを使用していますか? 私はこれを正しく行っていますか、それともコードを変更する必要がありますか? これを行う簡単な方法はありますか?
よろしくお願いします、