配列の値の中からランダムで選択する

配列の値の中からランダムで選択する方法をメモ。

サンプルコード

配列の中から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];
}

ランダムで1つ取得するデモページ
 

選択する数を複数にできるようにしてみます。

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;
}

最初のサンプルでは文字列を返すようにしていましたが、このサンプルは複数取得するため配列を返すようにしています。
ランダムで複数取得するデモページ
 

このエントリーをはてなブックマークに追加

関連記事

コメントを残す

メールアドレスが公開されることはありません。
* が付いている欄は必須項目です

CAPTCHA


コメントが承認されるまで時間がかかります。

2024年11月
 12
3456789
10111213141516
17181920212223
24252627282930