配列内の N 個のランダムな要素

Beginner

This tutorial is from open-source community. Access the source code

はじめに

この実験では、JavaScript を使って配列からランダムな要素を選択する方法を探ります。Fisher-Yates アルゴリズムを使って配列をシャッフルする方法を学び、それを使って配列から 1 つ以上の要素をランダムに選択します。この実験は、配列操作の理解を深め、JavaScript における問題解決能力を向上させることを目的としています。

コード演習:配列からランダムな要素を取得する

コーディングを練習するには、ターミナル/SSH を開いてnodeと入力します。次のコードは、Fisher-Yates アルゴリズムを利用して配列をシャッフルし、配列のサイズまで、一意のキーでn個のランダムな一意の要素を取得します。

const sampleSize = ([...arr], n = 1) => {
  let m = arr.length;
  while (m) {
    const i = Math.floor(Math.random() * m--);
    [arr[m], arr[i]] = [arr[i], arr[m]];
  }
  return arr.slice(0, n);
};

このコードを使用するには、配列と取得する要素のオプショナルな数nを引数にsampleSize()を呼び出します。nが指定されていない場合、関数は配列からランダムに 1 つの要素のみを返します。

sampleSize([1, 2, 3], 2); // [3, 1]
sampleSize([1, 2, 3], 4); // [2, 3, 1]

まとめ

おめでとうございます!配列内の N 個のランダムな要素の実験を完了しました。スキルを向上させるために LabEx でさらに多くの実験を練習できます。