大変、お世話になります。
色々と試しながら、勉強を深めています。
今回、表題の通り、i
の初期値をarr.length
に設定してみました。
ソースは下記の通りです。
function shuffle(arr) {
for (let i = arr.length; i > 0; i--) {
[arr[Math.floor(Math.random() * i)], arr[i - 1]] =
[arr[i - 1], arr[Math.floor(Math.random() * i)]];
}
return arr;
}
i
を 5
から、実際に 4 → 3 → 2 → 1
と当てはめながら進めてみましたが、問題はないように思うのですが、結果はおかしくなってしまいます。
レッスンのソースでの勉強は終えていますが、なぜ、私の今回のソースがうまく行かないのか、i
の初期値を arr.length
で始める場合のケースについて、教えて頂ければ幸いです。
宜しくお願い致します。
この回答を見るにはプレミアムプランへの登録が必要です
プレミアムプランとは?