▲TOPへ戻る

【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個取り出すことができます。

こんな記事も読まれています。

profile

パソコン好きなガオ

コロナ禍によるステイホームを機にプログラミングを学ぶ。パソコンに関してはプロではないが、ちょっと詳しい程度。

パソコン

javascript

カメラ

ブログ