はじめに
この実験では、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 でさらに多くの実験を練習できます。