どうも、ちょげ(@chogetarou)です。
forループを使って配列(Array)をランダムに並び替える方法を紹介します。
方法

forループを使って配列(Array)をシャッフルするには、フィッシャー–イェーツのアルゴリズムを使います。
まず、for文で配列の要素数の数だけループします。
そして、ループ処理に、Math.random()でフィッシャー–イェーツのアルゴリズムの処理を指定します。
//array=シャッフルする配列
for (let i = array.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[array[i], array[j]] = [array[j], array[i]];
}
上記のforループは、対象の配列をランダムに並び替えます。
使用例
function shuffleArray(array) {
for (let i = array.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[array[i], array[j]] = [array[j], array[i]];
}
}
var numbers = [1, 2, 3, 4, 5, 6, 7, 8];
shuffleArray(numbers);
console.log(numbers);
出力:
[
5, 6, 4, 2,
1, 7, 8, 3
]
コメント