【週刊ドットインストール】 考える力を養うための新クラス『データで学ぶアルゴリズム』を256timesでリリース!
大変、お世話になります。 色々と試しながら、勉強を深めています。
今回、表題の通り、iの初期値をarr.lengthに設定してみました。 ソースは下記の通りです。
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 と当てはめながら進めてみましたが、問題はないように思うのですが、結果はおかしくなってしまいます。
5
4 → 3 → 2 → 1
レッスンのソースでの勉強は終えていますが、なぜ、私の今回のソースがうまく行かないのか、i の初期値を arr.length で始める場合のケースについて、教えて頂ければ幸いです。
宜しくお願い致します。
ドットインストールは、3分動画でマスターできるプログラミング学習サービスです。
3分で気軽に学習でき、スマートフォンからも視聴可能です。ホームページやWebサービスの制作を通して、実践的にプログラミングを学べます。
他にも、ゲーム制作やデータ分析・機械学習・AIに使われる言語まで幅広くカバー。学びたい分野のレッスンがきっと見つかります。
この回答を見るにはプレミアムプランへの登録が必要です
大変、お世話になります。
色々と試しながら、勉強を深めています。
今回、表題の通り、
iの初期値をarr.lengthに設定してみました。ソースは下記の通りです。
iを5から、実際に4 → 3 → 2 → 1と当てはめながら進めてみましたが、問題はないように思うのですが、結果はおかしくなってしまいます。レッスンのソースでの勉強は終えていますが、なぜ、私の今回のソースがうまく行かないのか、
iの初期値をarr.lengthで始める場合のケースについて、教えて頂ければ幸いです。宜しくお願い致します。