【javascript】配列の中から重複せず、ランダムにn個取り出す方法
配列の中から重複せず、ランダムにn個取り出す関数
第一引数に配列、 第二引数に取り出す数を指定。
function random(array, num) {
var a = array;
var t = [];
var r = [];
var l = a.length;
var n = num < l ? num : l;
while (n-- > 0) {
var i = (Math.random() * l) | 0;
r[n] = t[i] || a[i];
--l;
t[i] = t[l] || a[l];
}
return r;
}
実行結果
const number = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
random(nunber, 5) // numberからランダムに5個取り出す
実行結果 :
const string = ["リンゴ", "バナナ", "オレンジ", "メロン", "スイカ", "ブドウ"];
random(string, 5) // stringからランダムに5個取り出す
実行結果 :
これで配列の中から、重複することなく、ランダムにn個取り出すことができます。