配列の値の中からランダムで選択する方法をメモ。
サンプルコード
配列の中から1つをランダムで取得するようにしてみます。
JavaScript
var data = ['アンジェ', 'プリンセス', 'ドロシー', 'ベアトリス', 'ちせ'];
var getData = choose_at_random(data);
console.log(getData);
/**
* 配列の値からランダムで1つ選択して返す
* @param arr arrayData (required) 選択する配列の内容
* @return str
*/
function choose_at_random(arrayData) {
var arrayIndex = Math.floor(Math.random() * arrayData.length);
return arrayData[arrayIndex];
}
選択する数を複数にできるようにしてみます。
JavaScript
var data = ['アンジェ', 'プリンセス', 'ドロシー', 'ベアトリス', 'ちせ'];
var getData = choose_at_random(data, 4);
console.log(getData);
/**
* 配列の値からランダムで値を選択して返す
* @param arr arrayData (required) 選択する配列の内容
* @param arr count (optional) 配列から選択する数
* @return arr
*/
function choose_at_random(arrayData, count) {
// countが設定されていない場合は1にする
var count = count || 1;
var arrayData = arrayData;
var result = [];
for (var i = 0; i < count; i++) {
var arrayIndex = Math.floor(Math.random() * arrayData.length);
result[i] = arrayData[arrayIndex];
// 1回選択された値は削除して再度選ばれないようにする
arrayData.splice(arrayIndex, 1);
}
return result;
}
最初のサンプルでは文字列を返すようにしていましたが、このサンプルは複数取得するため配列を返すようにしています。
ランダムで複数取得するデモページ
コメントが承認されるまで時間がかかります。