配列の値の中からランダムで選択する方法をメモ。
サンプルコード
配列の中から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; }
最初のサンプルでは文字列を返すようにしていましたが、このサンプルは複数取得するため配列を返すようにしています。
ランダムで複数取得するデモページ
コメントが承認されるまで時間がかかります。